Ricorda che quando strutturi i dati in Cloud Firestore, hai a disposizione alcune opzioni diverse:
- Documenti
- Più collezioni
- Raccolte secondarie 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 di 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 documenti, è facile da configurare e ottimizza 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 incanto
- 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 eseguire
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
name : "chat software"
- 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"
data di nascita : 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 : "..."
|