解析和存储电子书内容,sqlite索引

时间:2013-08-29 05:02:19

标签: android sqlite relational-database paradigms

我希望存储书籍,并能够搜索单个页面。它一次只会搜索一页。

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

所以列将是

ID

书名

书名

文本

章节名称

文本将是最大的部分

我将使用Android操作系统,所以如果可以获得这将是一个很好的解决方案/排序范例?关于存储不是特定于android的书籍存在类似的问题,而且这些问题是使用其他技术

1 个答案:

答案 0 :(得分: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)

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

如果另一方面你想实现文本搜索,那么这将无效。为此,您必须构建一个单词数据库,每个单词都列出了它的出现位置。这将使您的数据库大小增加一倍以上。