私の英語で申し訳ありませんが、それは私の母国語ではありません。
この基本機能を備えたアプリケーションを開発したい:
- ユーザーは、サブタスクを含むタスクを作成できます。階層のレベルは無制限にする必要があるため、サブタスクはサブタスク自体などを持つことができます。
- ユーザーはタグを作成でき、すべてのタスクは無制限のレベルのタグを持つことができるため、ユーザーはいくつかのタグによってタグ付けされたすべてのタスクを表示できます。
- タスクはクラウドと同期する必要があります。
- 高速に動作するはずです。したがって、たとえば、ユーザーは次のレベルのタスクに移行したり、異なるタグを持つアイテムを表示したりする際に遅延を経験することはありません。
まあ、リマインダーなどの他の機能はたくさんありますが、生の JSON、nosql db、または sqlite のこの選択にはリンクされていません。
問題は、この機能により適しているものは何ですか?
例えば :
- SQL では、サブタスクの ID をスキーマのどこかに保存し、n レベルの階層に対して O(n) クエリを実行する必要がありますが、json ではかなり簡単です。サブタスクであるタスクの配列を持つタスクオブジェクトを持つことができます。または、xml (JSON で実行できるかどうかはわかりません) では、サブタスクのいくつかの ID の配列を持つことができます)。私は何を選ぶべきですか、あなたはどう思いますか?
- JSON では、「タグ」と呼ばれる文字列項目を使用できます。そして、すべてのタスクは非常に単純なタグの配列を持つことができます。SQLでは、すべてのタグとすべてのタスクIDを持つ別のテーブル「タグ」が必要で、タグとIDの一意のペアごとに1つずつ冗長です。
- クラウドとの同期は JSON で簡単です。すべてのタスクを含む 1 つの大きなファイルを作成し、最新の変更がどこにあるかに応じてサーバーから、またはサーバーにアップロードすることができます (まあ、基本的には)。しかし、2 つの問題があります。しかし、この方法ではすべてのファイルを転送しますが、変更は非常に少なく、この方法ではアプリがより多くのトラフィックを消費するはずです. 多分noSQL DBはこれを解決できますか?sql でも app はそれを行うことができますが、すべての db データを転送する必要があります。