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

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

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

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

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

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

  • Преимущества: если у вас есть простые фиксированные списки данных, которые вы хотите хранить в своих документах, это легко настроить и оптимизировать структуру данных.
  • Ограничения: это не так масштабируемо, как другие варианты, особенно если ваши данные со временем расширяются. С большими или растущими списками увеличивается и документ, что может привести к замедлению времени поиска документа.
  • Каков возможный вариант использования? Например, в приложении для чата вы можете сохранить 3 последних посещенных пользователем чата в виде вложенного списка в его профиле.

    • название :
      первая: «Ада»
      последний: "Лавлейс"
      родился: 1815 г.
      номера :
      0 : «Программный чат»
      1: «Известные деятели»
      2: «Известные SWE»

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

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

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

        • первая: «Ада»
          последний: "Лавлейс"
        • поездка
          первый: "Салли"
          последняя: "Поездка"`


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

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

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

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

    • первая: «Ада»
      последний: "Лавлейс"
      родился: 1815 г.
    • поездка
      первый: "Салли"
      Последняя поездка"
      родился: 1951 г.
  • комнаты
    • программное обеспечение
      • сообщения
        • сообщение
          от: "любовь"
          содержание : "..."
        • сообщение
          от: "sride"
          содержание : "..."