Strutturare i dati

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

  • Documenti
  • Più collezioni
  • Sottocollezioni all'interno dei documenti

Valuta i vantaggi di ogni opzione in relazione al tuo caso d'uso. In questa guida sono riportate alcune strutture di esempio 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 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.
  • alovelace
    •     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 emettere 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
        nome : "software chat"
      • 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"
          born : 1815
    • sride
          first : "Sally"
          last : "Ride"
          born : 1951
  • stanze
    • Software
      • messaggi
        • message1
              from : "alovelace"
              content : "..."
        • message2
              from : "sride"
              content : "..."

Video

Per saperne di più, guarda i seguenti video: