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

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

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

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

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

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

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

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

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

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


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

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

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

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