Venivo dal mondo dei database relazionali, poi ho trovato questa cosa di Datastore. ci sono voluti diversi giorni per appenderlo. bene ci sono alcune delle mie scoperte.
Devi già sapere che Datastore è costruito su scala e questa è la cosa che lo separa da RDMBS. per adattarsi meglio con un set di dati di grandi dimensioni, App Engine ha apportato alcune modifiche (alcune significa molte modifiche).
RDBMS VS DataStore
Struttura del
Nel database, di solito strutturiamo i nostri dati in Tabelle, Righe che si trovano in Datastore diventano Tipi ed Entità .
Relazioni
In RDBMS, la maggior parte delle persone segue la relazione One-to-One, Many-to-One, Many-to-Many, In Datastore, Dato che ha la cosa "No Joins", ma possiamo ancora raggiungere la nostra normalizzazione usando " ReferenceProperty "Ad esempio Esempio di relazione uno a uno .
indici
Di solito in RDMBS realizziamo indici come chiave primaria, chiave esterna, chiave univoca e chiave indice per accelerare la ricerca e migliorare le prestazioni del nostro database. In archivio dati, devi fare almeno uno indice per ogni tipo (che verrà automaticamente genererà che vi piaccia o no) perché datastore cercare il vostro soggetto sulla base di questi indici e credetemi che è la parte migliore, in RDBMS è possibile cercare utilizzando campo non indicizzato anche se ci vorrà del tempo ma lo farà. In Datastore non è possibile effettuare ricerche utilizzando la proprietà non indice.
Conteggio
In RDMBS, è molto più facile contare (*) ma nel datastore, per favore, non pensarlo nemmeno in modo normale (Sì, c'è una funzione di conteggio) in quanto ha un limite di 1000 e costerà un'operazione piccola quanto l'entità che non è buono ma abbiamo sempre buone scelte, possiamo usare segnalini Shard .
Vincoli unici
in RDMBS, adoriamo questa funzionalità, giusto? ma Datastore ha la sua strada. non è possibile definire una proprietà come unica :(.
Query
GAE Datatore fornisce una funzione di una migliore molto COME (Oh no! Datastore non hai COME parola chiave) di SQL che è GQL .
Data Insert / Update / Delete / Select
Questo è ciò a cui tutti noi siamo interessati, poiché in RDMBS abbiamo bisogno di una query per Insert, Update, Delete e Select proprio come RDBMS, Datastore ha inserito, eliminato, ottenuto (non eccitatelo troppo) perché Datastore mettere o ottenere in termini di scrittura, lettura, piccole operazioni ( costi di lettura per le chiamate su archivio dati ) ed è qui che entra in azione la modellazione dei dati. devi ridurre al minimo queste operazioni e mantenere la tua app in esecuzione. Per ridurre l' operazione di lettura è possibile utilizzare Memcache .