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