我想我的手在谷歌appengine和使用数据存储与PHP和栎。 我对Java或Python不熟悉,所以很多学习都在这里进行。我有页面呈现,并且我能够从数据存储中获取数据。appengine数据结构 - 孩子,父母还是两者?
我正在构建的应用程序包含用户,组,主题和评论。 一个组有用户,用户可以属于多个组。 当用户登录时,我会显示他们所属的组以及这些组的主题。
我已经有了这个目前在MySql中建立的,现在正在弄清楚如何将它变成appengine。
我看到它的方式,一个组是一个父母,其中有主题和用户作为孩子。主题有儿童评论。
但是,我必须在用户登录时获取用户所属的组。因此,我正在考虑存储用户,联系人和登录信息的单独父实体,并且该用户的子级将包含每个用户所属的组ID,以便我知道要提取哪些组。
用户是该组的子女,这样我可以显示组中的所有用户,但也许有更高效的方式来执行此操作。
像这样
Groups(EntityGroup) - GroupName, Owner ↳ Topics - TopicName, Content, Owner ↳ Comments - Comment, Owner ↳ Users - userid Users(EntityGroup) - userName, email, password ↳ userGroup - groupid
然后,当用户登录时,逻辑是这样的
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; } }
我看像这样的原因是因为当用户登录,我不能很好地去查看每个组的用户,我只想将登录信息存储在一个地方。
请不要将我推荐到code.google.com文档,因为我已经经历过很多次了,但并不完全了解appengine的情况。
另外,我上面概述了如何正确显示数据存储的方式?我认为可视化数据一直是一个可能导致一些挑战的斗争。
谢谢亚当,这证实了我的想法。我不应该担心用户被一次添加到多个组中。我并没有为用户实体或小组思考'list property',尽管我现在已经看过几次了。我正在为用户所属的每个小组想一个孩子,但我会仔细看看ListProperty,因为这听起来像是要走的路。感谢您的非常彻底的回应。 – pedalpete 2010-01-10 02:46:31