我应该使用平面文件还是数据库来存储 Android 上的随机报价应用程序的报价?
题
我正在 Android 上开发一个应用程序,它会从大量引言中随机挑选并显示鼓舞人心的引言(或诗句)。在 Android 上,我可以在平面文件和 SQLite 数据库之间进行选择。
该应用程序应满足以下条件:
可扩展到 10^6 条引文和/或经文
速度要非常快(即只需按一下按钮即可立即检索并显示报价)
能够从外部源加载新的报价(采用我尚未决定的格式)
我必须使用什么数据格式?谢谢。
解决方案
我会使用一个非常简单的数据库,单个表:
Quotes
ID sequential integer PK
Quote text/string
带有可能的“已查看”位字段,您可以更新该位字段以防止重复。生成一个随机值并从表中选择该行,将其标记为已查看并完成操作。
平面文件的问题是快速查找并读取文件中间的引用。这就是数据库擅长的地方。另外,对于“平面”文件,文件行末尾会浪费大量空间。
另外,如果可以加载新的报价,为什么要一次填充 10^6 呢?只需加载足够的内容以使应用程序继续运行并按顺序浏览它们,删除已查看的内容并加载新的内容。这种方法需要您跟踪最后加载的报价,因此您总是加载新的报价。
不隶属于 StackOverflow