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

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

  • Документы
  • Множество коллекций
  • Подгруппы внутри документов

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

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

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

  • Преимущества: Если у вас есть простые, фиксированные списки данных, которые вы хотите хранить в документах, это легко настроить и оптимизирует структуру ваших данных.
  • Limitations: This isn't as scalable as other options, especially if your data expands over time. With larger or growing lists, the document also grows, which can lead to slower document retrieval times.
  • Какой возможный вариант использования? Например, в чат-приложении можно хранить 3 последних посещенных пользователем чата в виде вложенного списка в его профиле.
  • аловелайс
    • имя :
      первый: "Ада"
      последний: "Лавлейс"
      родился: 1815 год
      комнаты:
      0: "Программный чат"
      1: «Известные личности»
      2: «Знаменитые разработчики программного обеспечения»

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

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

  • Advantages: As your lists grow, the size of the parent document doesn't change. You also get full query capabilities on subcollections, and you can issue collection group queries across subcollections.
  • Ограничения: Вы не можете легко удалять подколлекции.
  • Какой возможный сценарий использования? Например, в том же приложении для чата вы можете создавать коллекции пользователей или сообщений внутри документов чат-комнаты.
  • наука
    • программного обеспечения
      имя: "программный чат"
      • users
        • аловелайс
          первый: "Ада"
          последний: "Лавлейс"
        • райд
          первый: "Салли"
          последний: "Поездка"


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

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

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

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