Je suis venu du monde de la base de données relationnelle, puis j'ai trouvé ce truc Datastore. il a fallu plusieurs jours pour y arriver. Eh bien, il y a certaines de mes découvertes.
Vous devez déjà savoir que Datastore est conçu pour évoluer et c'est ce qui le sépare de RDMBS. pour mieux évoluer avec un ensemble de données volumineux, App Engine a apporté quelques modifications (certaines signifient beaucoup de changements).
Structure du RDBMS VS DataStore
Dans la base de données, nous structurons généralement nos données en tables, lignes qui se trouvent dans le magasin de données et deviennent des types et des entités .
Relations
Dans le SGBDR, la plupart des gens suivent la relation un-à-un, plusieurs-à-un, plusieurs-à-plusieurs, dans le magasin de données, car il n'a pas de jointure, mais nous pouvons toujours réaliser notre normalisation en utilisant " ReferenceProperty " Exemple de relation un à un par exemple .
Index
Habituellement, dans RDMBS, nous créons des index comme la clé primaire, la clé étrangère, la clé unique et la clé d'index pour accélérer la recherche et améliorer les performances de notre base de données. Dans le magasin de données, vous devez créer au moins un index par type (il générera automatiquementque vous le vouliez ou non) car le magasin de données recherche votre entité sur la base de ces index et croyez-moi que c'est la meilleure partie, dans le SGBDR, vous pouvez rechercher en utilisant champ non-index bien que cela prendra un certain temps, mais cela le sera. Dans Datastore, vous ne pouvez pas effectuer de recherche en utilisant une propriété non indexée.
Count
Dans RDMBS, il est beaucoup plus facile de compter (*) mais dans le magasin de données, s'il vous plaît ne le pensez même pas de manière normale (oui, il y a une fonction de comptage) car il a une limite de 1000 et cela coûtera autant de petites opérations que l'entité qui ce n'est pas bon mais nous avons toujours de bons choix, nous pouvons utiliser des compteurs d'éclat .
Contraintes uniques
Dans RDMBS, nous aimons cette fonctionnalité, non? mais Datastore a sa propre manière. vous ne pouvez pas définir une propriété comme unique :(.
Requête
GAE Datatore fournit une meilleure fonctionnalité bien COMME (Oh non! Datastore n'a pas aimé les mots - clés) SQL qui est GQL .
Insertion de données / mise à jour / suppression / sélection
Ceci nous intéresse tous, comme dans RDMBS, nous avons besoin d'une requête pour insérer, mettre à jour, supprimer et sélectionner tout comme le SGBDR, Datastore a mis, supprimer, obtenir (ne soyez pas trop excité) parce que Datastore Mettez ou obtenez en termes d' écriture, de lecture, de petites opérations ( coûts de lecture pour les appels au magasin de données ) et c'est là que la modélisation des données entre en action. vous devez minimiser ces opérations et maintenir votre application en cours d'exécution. Pour réduire l' opération de lecture, vous pouvez utiliser Memcache .