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

Remember, when you structure your data in Cloud Firestore , you have a few different options:

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

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

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

You can nest complex objects like arrays or maps within documents.

  • Advantages: If you have simple, fixed lists of data that you want to keep within your documents, this is easy to set up and streamlines your data structure.
  • Ограничения: Этот вариант не так масштабируем, как другие, особенно если ваши данные со временем увеличиваются. При больших или постоянно растущих списках увеличивается и размер документа, что может привести к замедлению времени поиска документа.
  • What's a possible use case? In a chat app, for example, you might store a user's 3 most recently visited chat rooms as a nested list in their profile.
  • аловелайс
    • имя :
      первый: "Ада"
      последний: "Лавлейс"
      родился: 1815 год
      комнаты:
      0: "Программный чат"
      1: «Известные личности»
      2: «Знаменитые разработчики программного обеспечения»

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

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

  • Преимущества: По мере роста ваших списков размер родительского документа не меняется. Вы также получаете полные возможности запросов к подколлекциям и можете выполнять запросы к группам коллекций в рамках подколлекций.
  • Limitations: You can't easily delete subcollections.
  • What's a possible use case? In the same chat app, for example, you might create collections of users or messages within chat room documents.
  • наука
    • программного обеспечения
      имя: "программный чат"
      • users
        • аловелайс
          первый: "Ада"
          последний: "Лавлейс"
        • райд
          первый: "Салли"
          последний: "Поездка"


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

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

Create collections at the root level of your database to organize disparate data sets.

  • Advantages: Root-level collections are good for many-to-many relationships and provide powerful querying within each collection.
  • Limitations: Getting data that is naturally hierarchical might become increasingly complex as your database grows.
  • What's a possible use case? In the same chat app, for example, you might create one collection for users and another for rooms and messages.
  • users
    • аловелайс
      первый: "Ада"
      последний: "Лавлейс"
      родился: 1815 год
    • райд
      первый: "Салли"
      последний: "Поездка"
      Дата рождения: 1951
  • комнаты
    • программного обеспечения
      • сообщения
        • сообщение1
          из: "alovelace"
          содержание : "..."
        • сообщение2
          от : "sride"
          содержание : "..."