Question

J'ai prototypé une application iPhone qui utilise (en interne) SQLite comme base de données. L'objectif était d'avoir finalement il communiquer avec un serveur via PHP, qui utiliserait MySQL comme base de données back-end.

Cependant, juste découvert Google App Engine, mais savent très peu. Je pense que ce serait bien d'utiliser l'interface Python pour écrire dans le magasin de données - mais je sais très peu sur la capacité de GQL. Je l'ai écrit à la base de tout le code de base de données MySQL de travail en utilisant, les tests en interne sur l'iPhone avec SQLite. Est-ce que gql offre les mêmes fonctionnalités que SQL peut? J'ai lu sur le site qu'il ne supporte pas les requêtes de jointure. Aussi est-il vraiment relationnel?

En fait, je suppose que ma question est peut une application qui utilise généralement le travail de back-end SQL aussi bien avec App Engine de Google, avec GQL?

J'espère que ce clair ... toute orientation est grande.

Était-ce utile?

La solution

True, Google App Engine est un produit très cool, mais le datastore est une bête différente d'une base de données mySQL régulière. Cela ne veut pas dire que ce dont vous avez besoin ne peut pas être fait avec le datastore GAE; mais il peut prendre un certain remaniement de votre côté.

Le plus important autre que vous remarquez dès le départ est que GAE utilise un mapping objet-relationnel pour son système de stockage de données. objet essentiellement graphiques sont conservés dans la base de données, pour y maintenir les attributs et les relations avec d'autres objets. Dans de nombreux cas ORM (object correspondances relationnelles) carte assez bien sur une base de données relationnelle (c'est comment Hibernate fonctionne). La cartographie est pas parfait si et vous constaterez que vous devez apporter des modifications à persister vos données. En outre, GAE a des contraintes uniques qui compliquent les choses un peu. Un qui me dérange contraint beaucoup est de ne pas pouvoir interroger pour les chemins d'attributs: par exemple "Select ... où dog.owner.name = 'bob'". Ce sont ces règles qui vous obligent à lire et à comprendre comment fonctionne magasin de données GAE avant de sauter dedans.

Je pense que GAE pourrait bien fonctionner dans votre situation. Il vient peut prendre un certain temps pour comprendre la persistance des ORM en général, et GAE datastore dans les détails.

Autres conseils

GQL offre à tous les presque aucune fonctionnalité; il est utilisé pour les requêtes SELECT, et il existe uniquement pour faciliter l'écriture des requêtes SELECT plus facile pour les programmeurs SQL. Dans les coulisses, il convertit vos requêtes aux objets db.Query.

Le App Engine n'est pas une base de données relationnelle du tout. Vous pouvez faire des choses qui semble relationnel, mais mon conseil pour toute personne venant d'un arrière-plan SQL est d'éviter GQL à tout prix pour éviter le piège de penser le datastore est rien du tout comme un SGBDR, et d'oublier tout ce que vous savez sur la base de données conception. Plus précisément, si vous normalisant quoi que ce soit, vous souhaiterez bientôt vous ne l'aviez pas.

Je pense que cet article devrait vous aider.

  

Résumé: Cloud computing et le développement de logiciels pour les appareils portables sont deux technologies très chaudes qui sont de plus en plus combinés pour créer des solutions hybrides. Avec cet article, apprendre comment connecter Google App Engine, l'offre de cloud computing de Google, avec l'iPhone, la plate-forme mobile d'Apple. Vous verrez également comment utiliser la bibliothèque open source, TouchEngine, pour contrôler dynamiquement les données d'application sur l'iPhone en se connectant au nuage App Engine et la mise en cache que les données pour une utilisation hors ligne.

C'est une question assez générique:)

Réponse courte: oui. Il va impliquer une refonte de votre modèle de données, mais oui, les changements sont, vous pouvez le soutenir avec l'API GAE Datastore.

Lorsque vous créez vos modèles Python (pensez à ces sous forme de tableaux), vous pouvez certainement définir des références à d'autres modèles (maintenant nous avons une clé étrangère). Lorsque vous sélectionnez ce modèle, vous récupérerez les modèles de référencement (à peu près comme une jointure).

Il travaillerai plus probable, mais ce n'est pas une baisse de remplacement pour un serveur mySQL.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top