私はバックエンドとして非リレーショナルデータベースを使用するWebアプリケーションを開発しています(django-nonrel + AppEngine)。 いくつかの階層的なデータ(projects/subproject_1/subproject_N/tasks)を格納する必要があります。どのパターンを使用すべきか疑問に思っています。 (アイテムの親IDを保存) 非リレーショナルデータベースの階層データに関する推奨事項?
、ネストの深さ
- 隣接リスト:今のところ私は考え通常のユーザーは4〜5レベルを超えません。 また、UIの最初のページの読み込み時にあまりにも多くのアイテムを読み込まないように、最初のレベルのアイテムのページ番号を付けたいと思います。
これまでの説明から、ネストしたセットは、階層が表示にもっと使用されている場合に優れています。隣接リストは、ツリー上での編集が頻繁に行われるときに有効です。私の場合は、編集より表示が必要なのではないかと推測されます(ネストされたセットを使用すると、表示がうまくいく場合でも上記のページ設定は編集上の問題を複雑にする可能性があります)。
あなたは、非リレーショナルデータベースでの経験に基づいて、考えや助言をお持ちですか?