0

我知道 SQLite 在技术上是为大量数据而设计的,而 SharedPreferences 对于简单数据类型来说更容易、更快。

我想为一年中的每一天存储简单的真假布尔值。这意味着我要么必须创建 3 维 json 并将其作为字符串存储在共享首选项中(或者以年份为键的维度数组),要么创建具有年份月份和数据作为单独列的表(或者它可以是简单的日期列.. . 话虽如此,我也可以在 sharedPreferences 中使用“YYYY-MM-DD”作为 365 个布尔值的键)。

现在问题来了。如果我 100% 确定我不需要通过特殊参数功能进行任何搜索/分组/选择,我是否应该使用更复杂的 SQLite 数据库来存储这些简单数据。因为在我看来,如果我需要存储简单的布尔值(即使总共有 365 个以上的布尔值),我应该使用 SharedPreferences,因为它是一个更快的解决方案。但这对我来说似乎有点不对,因为我不确定 SharedPreferences 是否应该存储这么多变量。

添加:

这些布尔值仅在本地存储以供离线加载或从用户角度更快地访问。这些 1|0 值存储在每个应用程序用户的服务器上,因此即使我会对数据进行一些复杂的工作,我也不确定是否需要在手机上进行。

4

2 回答 2

2

共享首选项可以采用 365 个值。据此,共享首选项的最大大小约为 1.4mb。但共享首选项通常用于保存非常少量的数据,例如音量或用户设置。我建议您使用 sqlite 数据库。设置它需要一些时间,但值得花时间

于 2017-02-19T17:26:03.067 回答
1

将您的数据存储在共享首选项中似乎是个好主意,实际上它可以正常工作,但它采取了一种简单的方法。你永远不知道你将来可能需要什么。您的要求目前已得到满足,但不会以任何方式扩展。一般来说,值得投入一点时间并正确设置事物并从长远来看受益。

当然,如果您正在做一些快速原型设计或快速演示,那就另当别论了。

设置一个“复杂的数据库”或任何不必费时的东西。试试Realm,它真的很快。

于 2017-02-19T17:24:38.720 回答