我正处于Android注释应用程序的早期阶段,我希望有人能指出我存储笔记数据的好方法。
理想情况下,我希望找到一个解决方案:
XML已经出局(至少对整个文件而言),因为我没有一次提取单个页面的好方法。我考虑使用zip文件,但(特别是在压缩时)我认为它们也会被卡在整个文件中。
似乎应该有一个Java库可以做到这一点,但是我的google-fu让我失望了。我能想到的唯一另一种选择是为每个音符创建一个单独的sqlite数据库。
有人知道这个问题的解决方案吗?谢谢!
答案 0 :(得分:2)
似乎关系数据库可以在这里工作。你只需要稍微使用一下架构。
也许为每个页面创建一个Pages表,包括,例如,它所属的文档的字段以及文档中其顺序的字段。 Pages还可以包含二进制数据字段,该字段可能包含在另一个表中。如果文档本身有其他数据,也许您也有一个文档表。
我没有在Android设备上使用SQLite事务,但似乎这是解决线程安全问题的好方法。
答案 1 :(得分:1)
我建议使用SQLite来存储文档。最终,每次访问笔记时,尝试处理文件I / O都会更容易。然后,当有人想要上传到Dropbox时,您可以动态生成文件并上传它。至少有一个Notes表和一个pages表是有意义的。这样,您可以单独加载每个页面,而注释只是一组页面。此外,您可以将图像作为BLOBS存储在特定页面的数据库中。基本上,如果您每页只需要一种类型的内容,那么您将在页面表中拥有类似于id列和内容列的内容。或者,如果您想支持更复杂的内容,例如多种类型的内容,那么您需要使您的页面成为其他内容的集合,例如“实体”。
IMO,关系数据库将是满足您从特定页面阅读的最简单方法,而无需加载整个文件。