Я создаю приложение с использованием Firebase, и у меня возникли проблемы с структурированием данных для иерархии, которую требуется моему приложению.Как обрабатывать иерархические данные в Firebase?
Концепция
Мое приложение состоит из items
. Каждый предмет может содержать n
-many child items
. В базе данных и для любого заданного элемента будет 100 000 тысяч элементов. Я хочу получить кол-во все детские предметы (т. Е .: прямые дети, внуки, правнуки и т. Д.).
Текущий пример структуры
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 для данного элемента (если он должен быть установлен/увеличен при каждом добавлении элемента или если он должен быть вычислен при получении элемента. Sidenote: вы правы в том, что я не нуждаюсь во всех потомках одновременно, просто прямые дети и «totalChild * Count *» Еще раз спасибо! –