对不起,我的英语不是我的母语。
我想开发具有此基本功能的应用程序:
- 用户可以创建带有子任务的任务。层次结构的级别应该是无限的,因此子任务可以有自己的子任务等等。
- 用户可以创建标签,每个任务可以有无限级别的标签,因此用户可以查看所有已被某些标签标记的任务。
- 任务应与云同步。
- 它应该工作得很快。因此,例如,用户在转换下一级任务或显示具有不同标签的项目时不会遇到任何滞后。
好吧,还有很多其他功能,比如提醒和东西,但它与这种裸 JSON、nosql db 或 sqlite 的选择无关。
问题是什么更适合这个功能?
例如 :
- 在 sql 中,我们必须将子任务的 ID 存储在模式中的某个位置,并对 n 级层次结构进行 O(n) 查询,但在 json 中相当容易。我们可以有一个包含任务数组的任务对象,这是它的子任务。或者在 xml 中(我不知道这是否可以在 JSON 中完成)我们可能只是有一些子任务 ID 的数组)。我应该怎么选,你怎么看?
- 在 JSON 中,我可以有称为“标签”的字符串项目。每个任务都可以有一系列标签,非常简单。在 sql 中,我必须有另一个表“标签”,其中包含所有标签和所有任务 ID,每个唯一的标签和 ID 对都有一个,这有点多余。
- 使用 JSON 可以轻松与云同步。我可以只拥有一个包含所有任务的大文件,并将其从服务器上传或上传到服务器,具体取决于最新更改的位置(嗯,基本上)。但是有两个问题。但是这样我会传输所有文件,而更改很少,这样应用程序应该会消耗更多流量。也许 noSQL DB 可以解决这个问题?在 sql 中,app 也可以这样做,但它必须传输所有 db 数据。