1

我正在寻找存储书籍并能够搜索单个页面的能力。它一次只会搜索一个页面。

我最初的想法是按页码和一列显示页面所在的章节/部分将书籍存储在数据库中

所以列将是

ID

图书编号

书名

文本

章节

章节名称

文本将是最大的部分

我将使用 android 操作系统,所以考虑到什么是可用的,这将是一个很好的解决方案/排序范式吗?有一个类似的问题是关于存储不是特定于 android 的书籍,并且共识是使用其他技术

4

1 回答 1

1

我认为这是一个很好的解决方案,用于向用户展示页面。您可以为书籍 ID 和页面添加索引,因为用户将请求阅读特定页面(书签、下一页、上一页、如果开始新书,则为第一页)。您每分钟将有 1-2 个请求,因此即使没有索引也不会花费太长时间,您可以提前预缓存下一页以使体验更加流畅。

当性能成为问题时,平面数据库结构是一个很好的解决方案,我强烈建议三个表:

BOOK (book_id,book_title,book_author,book_ISBN,book_release_date,...)

CHAPTER (chapter_id,chapter_number,chapter_title,book_id_ref)

PAGE (page_id,page_number,chapter_id_ref)

这样,元数据中的任何修改都可以在一个地方完成,您不必更改每一页来修改一本书的作者。此外,如果您使用任何新字段扩展元数据,则只需更改 book 表的记录。

另一方面,如果您想实现文本搜索,那么这是行不通的。为此,您必须建立一个单词数据库,列出每个单词的出现次数。这将使您的数据库大小增加一倍以上。

于 2013-08-29T05:53:37.310 回答