Scegli una struttura di dati

Tieni presente che, quando strutturi i dati in Cloud Firestore, hai a disposizione alcune opzioni:

  • Documenti
  • Più raccolte
  • Sottoraccolte all'interno dei documenti

Valuta i vantaggi di ogni opzione in relazione al tuo caso d'uso. In questa guida vengono 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 all'interno dei documenti, questa opzione è facile da configurare e semplifica la struttura dei dati.
  • Limitazioni: questa opzione non è scalabile come le altre, soprattutto se i dati si espandono nel tempo. Con elenchi più grandi o in crescita, anche il documento aumenta di dimensioni, 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 3 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 aumentano, le dimensioni del documento principale non cambiano. Inoltre, hai a disposizione funzionalità di query complete sulle sottoraccolte, e puoi eseguire query di gruppo di raccolte tra le sottoraccolte.
  • Limitazioni: non puoi eliminare facilmente le sottoraccolte.
  • Qual è un possibile caso d'uso? Nella stessa app di chat, ad esempio, potresti creare raccolte di utenti o messaggi all'interno dei documenti delle stanze virtuali.
  • science
    • software
        name : "software chat"
      • users
        • alovelace
              first : "Ada"
              last : "Lovelace"
        • sride
              first : "Sally"
              last : "Ride"`


    • astrophysics
      • ...

Raccolte a livello di root

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

  • Vantaggi: le raccolte a livello di root sono utili per le relazioni molti-a-molti e forniscono query potenti all'interno di ogni raccolta.
  • Limitazioni: l'ottenimento di dati gerarchici per natura potrebbe diventare sempre più complesso 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 e i messaggi.
  • 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 : "..."