Я создаю внутреннее веб-приложение, используя базу данных в реальном времени через Firebase.Это для регистрации профессионального обучения, и я пытаюсь выяснить, как лучше структурировать дерево.
У меня есть три основных пути для моих данных: courses/
, regs/
, users/
.Я храню данные в каждом из них, чтобы минимизировать загрузку данных при запросе снимка.Но я обнаружил, что я либо копирую данные (не экономя на хранилище) или Я использую несколько вызовов для сбора и создания необходимой мне информации для пользователя.
Есть три основных представления, которые я выполняю с помощью дерева:
- Все доступные курсы (где пользователь не зарегистрирован)
- Курсы текущего пользователя
- Представление администраторасписок курсов и всех зарегистрированных пользователей
data
courses: {
course_1: {
title: 'Some course',
location: 'Some place',
organizer: 'Organizer 1',
desc: 'Some string description',
start: `datestring`
},
course_2: { ... }
},
regs: {
course_1: {
title: 'Course Title',
users: {
userUid1: {
name: 'Person 1',
email: 'person1@email.com'
},
userUid2: { ... },
},
},
course_2: { ... }
},
users: {
userUid1: {
building: 'Location',
name: 'Person 1',
email: 'person1@email.com'
regs: {
course_1: {
title: 'Some Course'
start: 'datestring`,
location: 'Some place'
},
course_2: { ... }
}
},
userUid2: { ... }
}
Итак, мой вопрос: в какой момент денормализация данных делает меньше смысл, чем глубже деревья?Нужно ли переосмыслить эту структуру?