Выберите структуру данных

Помните, что когда вы структурируете свои данные в Cloud Firestore , у вас есть несколько разных вариантов:

  • Документы
  • Несколько коллекций
  • Подколлекции в документах

Рассмотрите преимущества каждого варианта применительно к вашему варианту использования. В этом руководстве описано несколько примеров структур иерархических данных.

Вложенные данные в документах

В документы можно вкладывать сложные объекты, такие как массивы или карты.

  • Преимущества: если у вас есть простые фиксированные списки данных, которые вы хотите хранить в своих документах, это легко настроить и оптимизирует структуру данных.
  • Ограничения: это не так масштабируемо, как другие варианты, особенно если ваши данные со временем расширяются. При увеличении или увеличении списков документ также увеличивается, что может привести к увеличению времени поиска документа.
  • Каков возможный вариант использования? Например, в приложении чата вы можете сохранить три чата, которые пользователь последний раз посещал, в виде вложенного списка в его профиле.
  • ловеласа
    • имя :
      первое: «Ада»
      последнее: «Ловелас»
      родился: 1815 г.
      комнаты:
      0: «Программный чат»
      1: «Знаменитые деятели»
      2: «Знаменитые SWE»

Подколлекции

Вы можете создавать коллекции в документах, если у вас есть данные, которые могут со временем расширяться.

  • Преимущества: по мере роста ваших списков размер родительского документа не меняется. Вы также получаете полные возможности запросов к подколекциям и можете отправлять запросы к группам коллекций между подколекциями.
  • Ограничения: Вы не можете легко удалять подколлекции.
  • Каков возможный вариант использования? Например, в одном и том же приложении чата вы можете создавать коллекции пользователей или сообщений в документах комнаты чата.
  • наука
    • программное обеспечение
      имя: «программный чат»
      • пользователи
        • ловеласа
          первое: «Ада»
          последнее: «Ловелас»
        • поездка
          первое: «Салли»
          последнее: «Поездка»`


    • астрофизики
      • ...

Коллекции корневого уровня

Создавайте коллекции на корневом уровне базы данных для организации разрозненных наборов данных.

  • Преимущества: Коллекции корневого уровня хороши для отношений «многие ко многим» и обеспечивают мощные запросы внутри каждой коллекции.
  • Ограничения: Получение данных, имеющих естественную иерархическую структуру, может стать все более сложным по мере роста вашей базы данных.
  • Каков возможный вариант использования? Например, в одном и том же приложении чата вы можете создать одну коллекцию для пользователей, а другую — для комнат и сообщений.
  • пользователи
    • ловеласа
      первое: «Ада»
      последнее: «Ловелас»
      родился: 1815 г.
    • поездка
      первое: «Салли»
      последнее: «Поездка»
      родился: 1951 г.
  • комнаты
    • программное обеспечение
      • сообщения
        • сообщение
          от: "Аловелас"
          содержание : "..."
        • сообщение
          от: "Срайд"
          содержание : "..."