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

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

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

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

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

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

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

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

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

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


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

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

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

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