Scegli una struttura di dati

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

  • Documenti
  • Più raccolte
  • Sottoraccolte 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 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 le 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 più lenti.
  • Qual è un possibile caso d'uso? In un'app di chat, ad esempio, potresti memorizzare le tre chat room 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, puoi eseguire query complete sulle raccolte secondarie ed emettere query sui gruppi di raccolte nelle raccolte secondarie.
  • Limitazioni:non puoi eliminare facilmente le sottoraccolte.
  • Qual è un possibile caso d'uso? Nella stessa app di chat, ad esempio, puoi creare raccolte di utenti o messaggi all'interno dei documenti delle chat room.
  • science
    • software
        name : "software chat"
      • utenti
        • alovelace
              first : "Ada"
              last : "Lovelace"
        • sride
              first : "Sally"
              last : "Ride"`


    • astrophysics
      • ...

Raccolte a livello di radice

Crea raccolte a livello principale del database per organizzare set di dati disparati.

  • Vantaggi:le raccolte a livello di radice sono adatte alle relazioni molti-a-molti e forniscono query efficaci all'interno di ogni raccolta.
  • Limitazioni: l'ottenimento di dati naturalmente gerarchici potrebbe diventare sempre più complesso 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 : "..."