首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用户的昵称

用户的昵称
EN

Stack Overflow用户
提问于 2011-12-12 10:18:08
回答 2查看 212关注 0票数 1

我在一个应用程序中有5种类型的对象,比如A、B、C、D、E

该应用程序列出了所有类型的对象,其中显示了它们的名称、创建的用户和其他信息。

现在,为了能够在每个对象清单中显示用户名,我有一些选项

1)将用户实体键存储在每个对象中,然后当我检索类型A的对象的列表时,还检索用户的键及其名称,然后将它们附加到类型A的对象

2)当创建任何类型的对象时,还要存储一个属性" name“,它将是创建该对象的用户的名称(Yikes IMHO,如果用户后来更改了自己的名称怎么办;)

但我不相信上述两种方式都是正确的!我正在寻找答案,从可能遇到过类似问题的人那里

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-12 10:33:53

实际上您已经回答了,选项2是不可取的,因为用户可以更改他/她的用户名,并且在DataStore中级联更改(手动)不是一个好的选择。

票数 2
EN

Stack Overflow用户

发布于 2011-12-12 15:06:59

http://code.google.com/appengine/docs/python/datastore/typesandpropertyclasses.html#ReferenceProperty

链接中的示例:

代码语言:javascript
复制
class Author(db.Model):
    name = db.StringProperty()

class Story(db.Model):
    author = db.ReferenceProperty(Author)

story = db.get(story_key)
author_name = story.author.name

author = db.get(author_key)
stories_by_author = author.story_set.get()

使用ReferenceProperty可以很容易地完成option1。如果性能不是您主要关心的问题,则不需要额外的代码。

我还没有在Google App Engine上使用过java,但是google app engine也支持你所需要的对象关系。

http://code.google.com/appengine/docs/java/datastore/jdo/relationships.html#Owned_One_to_One_Relationships

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8469243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档