Scegli una struttura di dati

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

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

Considera i vantaggi di ciascuna opzione in relazione al tuo caso d'uso. In questa guida sono descritti alcuni esempi di strutture per i 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 tuoi documenti, questa opzione è facile da configurare e semplifica 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 cresce, il che può comportare tempi di recupero dei documenti più lenti.
  • Qual è un possibile caso d'uso? In un'app di chat, ad esempio, potresti memorizzare le tre stanze virtuali visitate più di recente da un utente come elenco nidificato nel suo profilo.
  • alovelace
    •     name :
            first : "Ada"
            last : "Lovelace"
          born : 1815
          rooms :
            0 : "Software Chat"
            1 : "Famous Figures"
            2 : "Famous SWEs"

Sottoraccolte

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

  • Vantaggi: man mano che gli elenchi crescono, le dimensioni del documento principale non cambiano. Inoltre, hai a disposizione funzionalità di query complete sulle sottoraccolte e puoi eseguire query sui gruppi di raccolte su più sottoraccolte.
  • Limitazioni: non è possibile eliminare facilmente le raccolte secondarie.
  • Qual è un possibile caso d'uso? Nella stessa app di chat, ad esempio, potresti creare raccolte di utenti o messaggi all'interno di documenti di stanze virtuali.
  • scienze
    • software
        name : "software chat"
      • utenti
        • alovelace
              first : "Ada"
              last : "Lovelace"
        • sride
              first : "Sally"
              last : "Ride"`


    • astrofisica
      • …

Raccolte a livello di root

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

  • Vantaggi: le raccolte a livello di root sono utili per le relazioni many-to-many e forniscono query efficaci all'interno di ogni raccolta.
  • Limitazioni: l'acquisizione di dati naturalmente gerarchici potrebbe diventare sempre più complessa man mano che il database cresce.
  • 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 virtuali e i messaggi.
  • utenti
    • alovelace
          first : "Ada"
          last : "Lovelace"
          born : 1815
    • sride
          first : "Sally"
          last : "Ride"
          born : 1951
  • stanze
    • software
      • messaggi
        • message1
              from : "alovelace"
              content : "…"
        • message2
              from : "sride"
              content : "…"