Я работаю над приложением для iPad, чтобы организовать спорт, используя Firebase. Требование состоит в том, чтобы:
Каждый вид спорта может включать в себя множество мероприятий.
Многие команды регистрируются на мероприятие.
Запросы, которые будут обрабатываться, будут:
Я новичок в разработке модели базы данных для firebase. Я разработал структуру базы огня, как показано на рисунке.
Будет ли эта структура оптимально поддерживать мои запросы? Пожалуйста, предложите изменения, которые мне придется внести. Заранее спасибо:)
Структура Firebase
1-й, push-клавиши firebase имеют очень удобную функцию сортировки в хронологическом порядке, то есть просто примените буквенно-цифровую сортировку, и они будут в хронологическом порядке даже для автономной записи.
В идеале вы разрабатываете свой документ таким образом, чтобы вам не приходилось запрашивать их. Если вы из мира MSSQL, ваши документы будут аналогичны представлениям MSSQL, но без таблиц для их резервного копирования.
Или, другими словами, храните документы так, как вы ожидаете результатов ваших запросов.
Предположим:
По сути, это два узла, предназначенные для таких представлений:
Кнопки Firebase уже отсортированы в хронологическом порядке, второй ключ вам не нужен.
Я обновил ответ, скажите, понятно ли
Большое спасибо за подробное и очень четкое объяснение.
Итак, из вашего вопроса я получил что-то вроде Сущности: спорт, команды, события и это будет много-много отношений между каждой сущностью, но поскольку вы имеете дело с решением, не основанным на sql, вы можете получать результаты для требуемых запросов со структурой, подобной этой
Sports:{
sport_name,
id,
Teams:
[{team_name, id}]
}
Events: {
event_id
event_name
teams :
[
{team_name, team_id}
]
}
Чтобы получить подробную информацию о каждой команде, вы можете создать еще один узел команд, в котором вы можете хранить все подробности.
Таким образом, каждый раз, когда вам нужно зарегистрировать команды для участия в каком-либо мероприятии, вы можете напрямую перейти к зарегистрированным командам в узле команд и то же самое для другого запроса.
События> Ключ события: ChildID, автоматически сгенерированный Firebase Events> Event ID: используется для получения дочерних элементов в том порядке, в котором они добавлены. Пример: идентификатор события будет начинаться с 1 и автоматически увеличиваться при каждом добавлении нового события.