2011-03-06 49 views
4

我正在创建一个应用程序,该应用程序将使用大量用于静态的所有意图和目的的数据。我曾认为使用SQLite数据库来处理这些数据是最有意义的。我想知道只使用XML文件是否合理,然后将其作为原始资源进行访问。请记住,可能会有很多数据,大约数百个单独的数据。原始资源与SQLite数据库

我是否有权假定SQLite是最好的,无论是在内存管理和总体设计考虑方面,或者SQLite没有意义,如果数据基本上是静态的?

回答

4

事实上,如果数据是静态的,SQLite似乎是无稽之谈。但是,如果你要处理大量的数据,你应该使用它:

  • 它会更容易:
    • 检索数据
    • 筛选数据
    • 排序数据
  • 由于SAX或DOM解析XML的方式,使用XML文件会导致一些性能问题。
  • 这将是您更轻松地更新,在未来的一组数据(假设你想在未来的版本中增加更多的数据)
+0

感谢Christian。伟大的观点。所以你相信SQLite有很大的意义,因为它更具可扩展性等等。即使应用程序不一定允许用户添加到数据库,它也是有意义的。 – LuxuryMode 2011-03-06 21:39:22

+0

实际上,我的一个应用程序必须拥有超过70,000条记录,这是使用SQLite数据库创建的。将它与SQlite索引混合使用,性能将会提高很多。 – Cristian 2011-03-06 22:18:11

0

克里斯蒂安是正确的。数据库为您提供更好的访问时间,并允许以非常方便的方式修改数据。在树状数据结构的情况下,XML可能是一个更好的主意。

在我看来有两个问题在这里:

  1. 你存储什么样的数据?
  2. 是否允许用户修改此 数据(例如,在应用程序或 使用记事本)

还有1个XML的大缺点 - 它是最终开放的文本。所以任何人都可以阅读它。为了防止它,你将不得不加密数据(这意味着额外的努力)。在XML的情况下,使用编组技术(JiBX,Castor,JAXB)可能会很方便,也可能会降低内存消耗。

请说明您在数据库中存储什么样的数据,因此我们可能会提出更好的答案。

+0

谢谢Altanis。这很有意义。这些数据本质上是一些可以在Linux和其他平台上使用的不同命令的参考指南。所以会有命令的文本,然后是描述。这些数据将按类别等进行组织。听起来像SQLite是要走的路。 – LuxuryMode 2011-03-06 23:39:57

+0

在这种情况下,数据库方法似乎是一个非常好的主意。我想你可能想用不同的标准来搜索这个数据库(通过一些描述你可能会搜索命令;你也可能会根据命令名搜索命令描述)。你所描述的数据理想地适合于表格,所以这是另一个优点。最后一个 - 你不需要加密文件(在这种情况下,它似乎很重要)。我脑海中有一个骗局 - 压缩的XML可能会更小。总结一下:在我看来你的选择是好的。 – altanis 2011-03-08 07:26:57

0

你是否认为你的数据是stollen(来自sqlite数据库)? 因为作为一个sqlite数据库,任何有root用户的人都可以拉数据库文件并使用它

+0

为什么这会成为一个问题?这是他的电话,他的数据。无论如何,它更容易从XML中“窃取”数据。 – 2014-12-03 21:03:57