Scegli una struttura di dati

Ricorda che quando strutturi i dati in Cloud Firestore, hai a disposizione alcune opzioni diverse:

  • Documenti
  • Più collezioni
  • Raccolte secondarie all'interno dei documenti

Valuta i vantaggi di ogni opzione in relazione al tuo caso d'uso. In questa guida sono descritte alcune strutture di esempio di dati gerarchici.

Dati nidificati nei documenti

Puoi nidificare oggetti complessi come array o mappe all'interno dei documenti.

  • Vantaggi: se hai elenchi di dati semplici e fissi che vuoi conservare nei documenti, è facile da configurare e ottimizza la struttura dei dati.
  • Limitazioni: questa opzione non è scalabile come altre, soprattutto se i dati aumentano nel tempo. Con elenchi più grandi o in crescita, anche il documento aumenta, il che può comportare tempi di recupero più lenti.
  • Qual è un possibile caso d'uso? In un'app di chat, ad esempio, potresti memorizzare le tre stanze di chat visitate più di recente da un utente come elenco nidificato nel suo profilo.
  • incanto
    •     name :
            first : "Ada"
            last : "Lovelace"
          born : 1815
          rooms :
            0 : "Software Chat"
            1 : "Famous Figures"
            2 : "Famous SWEs"

Raccolte secondarie

Puoi creare raccolte all'interno dei documenti quando hai dati che potrebbero espandersi nel tempo.

  • Vantaggi: man mano che gli elenchi aumentano, le dimensioni del documento principale non cambiano. Inoltre, hai a disposizione funzionalità di query complete per le sottocollezioni e puoi eseguire query sui gruppi di collezioni nelle sottocollezioni.
  • Limitazioni:non puoi eliminare facilmente le sottocollezioni.
  • Qual è un possibile caso d'uso? Nella stessa app di chat, ad esempio, puoi creare raccolte di utenti o messaggi all'interno dei documenti della chat room.
  • scienza
    • software
      name : "chat software"
      • utenti
        • alovelace
          first : "Ada"
          last : "Lovelace"
        • sride
              first : "Sally"
              last : "Ride"`


    • astrofisica
      • ...

Raccolte a livello di radice

Crea raccolte a livello di radice del database per organizzare set di dati diversi.

  • Vantaggi: le raccolte a livello di radice sono ideali per le relazioni many-to-many e consentono di eseguire query efficaci all'interno di ogni raccolta.
  • Limitazioni: l'acquisizione di dati naturalmente gerarchici potrebbe diventare sempre più complessa con la crescita del database.
  • Qual è un possibile caso d'uso? Nella stessa app di chat, ad esempio, potresti creare una raccolta per gli utenti e un'altra per le stanze e i messaggi.
  • utenti
    • alovelace
      first : "Ada"
      last : "Lovelace"
      data di nascita : 1815
    • sride
          first : "Sally"
          last : "Ride"
          born : 1951
  • stanze
    • Software
      • messaggi
        • message1
              from : "alovelace"
              content : "..."
        • message2
              from : "sride"
              content : "..."