Помните, что когда вы структурируете свои данные в Cloud Firestore, у вас есть несколько вариантов:
- Документы
- Несколько коллекций
- Подколлекции в документах
Рассмотрите преимущества каждого варианта применительно к вашему варианту использования. В этом руководстве приведены несколько примеров структур для иерархических данных.
Вложенные данные в документах
Вы можете вкладывать сложные объекты, такие как массивы или карты, в документы.
- Преимущества: если у вас есть простые фиксированные списки данных, которые вы хотите хранить в своих документах, это легко настроить и оптимизировать структуру данных.
- Ограничения: это не так масштабируемо, как другие варианты, особенно если ваши данные со временем расширяются. С большими или растущими списками увеличивается и документ, что может привести к замедлению времени поиска документа.
- Каков возможный вариант использования? Например, в приложении для чата вы можете сохранить 3 последних посещенных пользователем чата в виде вложенного списка в его профиле.
| - class
- название :
первая: «Ада» последний: "Лавлейс" родился: 1815 г. номера : 0 : «Программный чат» 1: «Известные деятели» 2: «Известные SWE»
|
Подколлекции
Вы можете создавать коллекции в документах, если у вас есть данные, которые могут расширяться со временем.
- Преимущества: по мере роста ваших списков размер родительского документа не меняется. Вы также получаете полные возможности запросов к подколлекциям и можете отправлять групповые запросы к подколлекциям.
- Ограничения: Вы не можете легко удалить вложенные коллекции.
- Каков возможный вариант использования? Например, в том же приложении чата вы можете создавать коллекции пользователей или сообщений в документах комнаты чата.
| - collections_bookmark наука
- class программное обеспечение
name : "программный чат"- collections_bookmark пользователей
- class
первая: «Ада» последний: "Лавлейс"
- class поездка
первый: "Салли" последняя: "Поездка"`
- class астрофизики
|
Коллекции корневого уровня
Создавайте коллекции на корневом уровне вашей базы данных, чтобы организовать разрозненные наборы данных.
- Преимущества: коллекции корневого уровня хороши для отношений «многие ко многим» и обеспечивают мощные запросы в каждой коллекции.
- Ограничения: Получение данных, которые естественно иерархичны, может становиться все более сложным по мере роста вашей базы данных.
- Каков возможный вариант использования? Например, в одном и том же приложении чата вы можете создать одну коллекцию для пользователей, а другую — для комнат и сообщений.
| - collections_bookmark пользователей
- class
первая: «Ада» последний: "Лавлейс" родился: 1815 г.
- class поездка
первый: "Салли" Последняя поездка" родился: 1951 г.
- collections_bookmark комнаты
- class программное обеспечение
- collections_bookmark сообщения
- сообщение class
от: "любовь" содержание : "..."
- сообщение class
от: "sride" содержание : "..."
|