【问题标题】:Raw resources versus SQLite database原始资源与 SQLite 数据库
【发布时间】:2014-04-17 04:49:20
【问题描述】:

我正在创建一个应用程序,该应用程序将使用大量数据,无论出于何种意图和目的,这些数据都是静态的。我认为使用 SQLite 数据库来处理这些数据是最有意义的。我想知道仅使用 XML 文件然后将其作为原始资源访问是否有意义。请记住,可能会有大量数据,大约有数百个单独的部分。

我是否认为 SQLite 是最好的,无论是在内存管理和整体设计考虑方面,还是如果数据基本上是静态的,SQLite 就没有意义?

【问题讨论】:

    标签: java android


    【解决方案1】:

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

    • 这样会更容易:
      • 检索数据
      • 过滤数据
      • 对数据进行排序
    • 由于 SAX 或 DOM 解析 XML 的方式,使用 XML 文件会导致一些性能问题。
    • 将来更新该组数据会更容易(假设您想在下一个版本中添加更多数据)

    【讨论】:

    • 谢谢克里斯蒂安。好点。所以你认为 SQLite 很有意义,因为它更具可扩展性等。即使应用程序不一定允许用户添加到数据库,它也有意义?
    • 没错.. 事实上,我的一个应用程序,它必须保存超过 70.000 条记录,是用 SQLite 数据库制作的。将其与 SQlite 索引混合使用,性能将大大提高。
    【解决方案2】:

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

    我认为这里有两个问题:

    1. 您要存储什么样的数据?
    2. 你允许用户修改这个吗 数据(例如在应用程序或 使用记事本)

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

    请描述您在数据库中存储的数据类型,以便我们提供更好的答案。

    【讨论】:

    • 感谢阿尔塔尼斯。这很有意义。这些数据本质上是一系列可在 Linux 和其他系统中使用的不同命令的参考指南。所以会有命令的文本,然后是描述。该数据将按类别等组织。定义。听起来 SQLite 是要走的路。
    • 在这种情况下,数据库方法似乎是一个非常好的主意。我想你可能想用不同的标准搜索这个数据库(通过描述的某些部分你可以搜索命令;你也可以根据命令名称搜索命令描述)。您描述的数据非常适合表格,所以这是另一个优点。最后一个 - 您不需要加密文件(在这种情况下,它似乎非常重要)。在我的脑海里有一个骗局——压缩的 XML 可能会更小。总结一下:在我看来你的选择是好的。
    【解决方案3】:

    您是否认为您的数据被盗(来自 sqlite 数据库)? 因为作为一个sqlite数据库,任何有root权限的人都可以拉取db文件并使用它

    【讨论】:

    • 为什么会出现这样的问题?这是他的手机,他的数据。无论如何,从 XML 中“窃取”数据更容易。
    猜你喜欢
    • 1970-01-01
    • 2012-09-03
    • 2011-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-18
    • 1970-01-01
    相关资源
    最近更新 更多