我正在寻找存储书籍并能够搜索单个页面的能力。它一次只会搜索一个页面。
我最初的想法是按页码和一列显示页面所在的章节/部分将书籍存储在数据库中
所以列将是
ID
图书编号
书名
文本
页
章节
章节名称
文本将是最大的部分
我将使用 android 操作系统,所以考虑到什么是可用的,这将是一个很好的解决方案/排序范式吗?有一个类似的问题是关于存储不是特定于 android 的书籍,并且共识是使用其他技术
我正在寻找存储书籍并能够搜索单个页面的能力。它一次只会搜索一个页面。
我最初的想法是按页码和一列显示页面所在的章节/部分将书籍存储在数据库中
所以列将是
ID
图书编号
书名
文本
页
章节
章节名称
文本将是最大的部分
我将使用 android 操作系统,所以考虑到什么是可用的,这将是一个很好的解决方案/排序范式吗?有一个类似的问题是关于存储不是特定于 android 的书籍,并且共识是使用其他技术
我认为这是一个很好的解决方案,用于向用户展示页面。您可以为书籍 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 表的记录。
另一方面,如果您想实现文本搜索,那么这是行不通的。为此,您必须建立一个单词数据库,列出每个单词的出现次数。这将使您的数据库大小增加一倍以上。