Wybierz strukturę danych

Pamiętaj, że podczas strukturyzowania danych w Cloud Firestore, masz kilka opcji:

  • Dokumenty
  • Wiele kolekcji
  • Podkolekcje w dokumentach

Zastanów się, jakie zalety ma każda z tych opcji w kontekście Twojego przypadku użycia. W tym przewodniku znajdziesz kilka przykładowych struktur danych hierarchicznych.

Zagnieżdżone dane w dokumentach

W dokumentach możesz zagnieżdżać złożone obiekty, takie jak tablice lub mapy.

  • Zalety: jeśli masz proste, stałe listy danych, które chcesz przechowywać w dokumentach, ta opcja jest łatwa w konfiguracji i upraszcza strukturę danych.
  • Ograniczenia: ta opcja nie jest tak skalowalna jak inne, zwłaszcza jeśli dane z czasem się rozszerzają. W przypadku większych lub rosnących list rośnie też rozmiar dokumentu, co może wydłużyć czas pobierania dokumentów.
  • Jaki jest możliwy przypadek użycia? Na przykład w aplikacji do czatowania możesz przechowywać 3 ostatnio odwiedzone przez użytkownika pokoje czatu jako zagnieżdżoną listę w jego profilu.
  • alovelace
    •     name :
            first : "Ada"
            last : "Lovelace"
          born : 1815
          rooms :
            0 : "Software Chat"
            1 : "Famous Figures"
            2 : "Famous SWEs"

Podkolekcje

Możesz tworzyć kolekcje w dokumentach, gdy masz dane, które mogą się z czasem rozszerzać.

  • Zalety: w miarę jak listy się powiększają, rozmiar dokumentu nadrzędnego nie zmienia się. Masz też pełne możliwości wykonywania zapytań w podkolekcjach, i możesz wysyłać zapytania do grup kolekcji w podkolekcjach.
  • Ograniczenia: nie możesz łatwo usuwać podkolekcji.
  • Jaki jest możliwy przypadek użycia? Na przykład w tej samej aplikacji do czatowania możesz tworzyć kolekcje użytkowników lub wiadomości w dokumentach pokoju czatu.
  • science
    • software
        name : "software chat"
      • users
        • alovelace
              first : "Ada"
              last : "Lovelace"
        • sride
              first : "Sally"
              last : "Ride"`


    • astrophysics
      • ...

Kolekcje najwyższego poziomu

Twórz kolekcje na najwyższym poziomie bazy danych, aby uporządkować różne zbiory danych.

  • Zalety: kolekcje najwyższego poziomu są przydatne w przypadku relacji wiele-do-wielu i umożliwiają wykonywanie zaawansowanych zapytań w każdej kolekcji.
  • Ograniczenia: w miarę jak baza danych się rozrasta, pobieranie danych, które są naturalnie hierarchiczne, może stawać się coraz bardziej złożone.
  • Jaki jest możliwy przypadek użycia? Na przykład w tej samej aplikacji do czatowania możesz utworzyć jedną kolekcję dla użytkowników, a drugą dla pokoi i wiadomości.
  • users
    • alovelace
          first : "Ada"
          last : "Lovelace"
          born : 1815
    • sride
          first : "Sally"
          last : "Ride"
          born : 1951
  • rooms
    • software
      • messages
        • message1
              from : "alovelace"
              content : "..."
        • message2
              from : "sride"
              content : "..."