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.
|
- class 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.
|
- collections_bookmark scienza
- Software class
nome : "software chat"
- collections_bookmark
utenti
- class
alovelace
first : "Ada"
last : "Lovelace"
- class
sride
first : "Sally"
last : "Ride"`
- classastrofisica
|
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.
|
- collections_bookmark
utenti
- class alovelace
first : "Ada"
last : "Lovelace"
born : 1815
- class sride
first : "Sally"
last : "Ride"
born : 1951
- collections_bookmark stanze
- Software class
- collections_bookmark
messaggi
- class
message1
from : "alovelace"
content : "..."
- class
message2
from : "sride"
content : "..."
|
Video
Per saperne di più, guarda i seguenti video: