私はFirebaseを使用してアプリケーションを構築しており、アプリケーションに必要な階層のデータを構造化することに問題があります。Firebaseで階層データを扱うには?
コンセプト
私のアプリがitems
で構成されています。各項目はn
- 多数child items
です。データベースには何百万ものアイテムがあります。 すべて子アイテム(直接子供、孫、孫、など)をカウントしたいと考えています。
現在の構成例
items: {
1: {
name: 'neat item 1'
},
2: {
name: 'neat item 2',
parentId: 1
},
3: {
name: 'neat item 3',
parentId: 2
}
}
質問
Firebaseでは、アイテムが持つ子供の数を追跡するための最良の方法は何ですか?したがって、上記の例では、項目#1に合計2つの子があり、項目#2に合計1つの子があります。
各アイテムにchildCount
を維持し、新しいアイテムが追加されるたびに、その数字をすべて親として維持するのが最善でしょうか?それとも、必要なときに子カウントを再帰的に計算する方が良いでしょうか?
データベースには500,000以上のアイテムが存在し、いくつかのアイテムは合計10,000人以上の子供がいることに注意してください。
ありがとうございました!
すばらしい返答をいただきありがとうございます。これは私が考えていたものですが、私の懸念は、どのアイテムに対しても "totalChildCount"を得る方法です。あなたの例では、直接的な子供の場合のみ "childrenCount"ですか、それとも*すべての子供の場合ですか?いずれにしても、アイテムが追加されるたびに増減する必要がある場合、またはアイテムが取得されたときに計算される必要がある場合は、特定のアイテムのtotalChildCountを効率的に計算する最良の方法が不思議です。私は一度にすべての子どもたちを必要としない、ちょうど子供たちと "totalChild * Count *"を教えてくれてありがとう!もう一度ありがとう!! –