Je m'essaie à google appengine et j'utilise le datastore avec php et quercus. Je ne suis pas familier avec Java ou Python, donc beaucoup d'apprentissage se passe ici. J'ai des pages de rendu, et je suis en mesure d'obtenir des données dans et hors de la banque de données.structure de données appengine - enfant, parent ou les deux?
L'application que je développe a des utilisateurs, des groupes, des sujets et des commentaires. Un groupe a des utilisateurs et les utilisateurs peuvent appartenir à plusieurs groupes. Lorsqu'un utilisateur se connecte, j'affiche les groupes dont il est membre et les sujets de ces groupes.
Je l'ai maintenant construit en MySQL, et je suis en train de trouver comment l'intégrer à appengine. Comme je le vois, un groupe est un parent qui a des sujets et des utilisateurs comme des enfants. Les sujets ont des commentaires en tant qu'enfants.
Cependant, je dois obtenir les groupes auxquels un utilisateur appartient lorsque l'utilisateur se connecte. Par conséquent, je pensais à une entité parent séparée qui stocke l'utilisateur, le contact et les informations de connexion, et cet utilisateur aurait des enfants contenant l'identifiant de groupe auquel chaque utilisateur appartient, afin que je sache quels groupes chercher.
Les utilisateurs sont des enfants du groupe afin que je puisse afficher tous les utilisateurs d'un groupe, mais il existe peut-être un moyen plus efficace de le faire.
Vous aimez cette
Groups(EntityGroup) - GroupName, Owner ↳ Topics - TopicName, Content, Owner ↳ Comments - Comment, Owner ↳ Users - userid Users(EntityGroup) - userName, email, password ↳ userGroup - groupid
Ensuite, lorsqu'un utilisateur se connecte, la logique ressemble à ce
SELECT groupid FROM Users where password=hashofpassword+uniqueusername foreach(groupid as group){ SELECT users from group; SELECT topics from group foreach(topicid as topic){ SELECT comments; } }
La raison pour laquelle je regarde comme ça parce que quand un utilisateur se connecte à , Je ne peux pas très bien aller à travers chaque groupe pour l'utilisateur, et je voudrais seulement stocker les informations de connexion en un seul endroit.
Veuillez ne pas me recommander à la documentation de code.google.com, comme je l'ai déjà fait plusieurs fois, mais je ne comprends pas complètement ce qui se passe avec appengine.
De même, est-ce que j'ai décrit ci-dessus la façon correcte de visualiser le magasin de données? Je pense que la visualisation des données a été un combat qui pourrait causer certains des problèmes.
Merci Adam, ça confirme ma réflexion. Je ne devrais pas avoir à m'inquiéter de l'ajout d'un utilisateur à plusieurs groupes à la fois. Je ne pensais pas à 'list property' pour l'entité User ou pour le groupe, bien que je l'ai vu plusieurs fois maintenant. Je pensais à un enfant pour chaque groupe auquel appartient l'utilisateur, mais je regarderai de plus près ListProperty, car cela semble être le chemin à suivre. Merci pour votre réponse très complète. – pedalpete