Google App Engine - 使用key_name或ReferenceProperty进行快速查找

时间:2013-08-10 11:41:51

标签: google-app-engine nosql

我有每个用户的用户帐户模型和个人资料模型。目前,我将两者的key_name设置为唯一生成的ID。 ID存储在会话对象中,这样我可以使用与key_name相同的ID查找用户帐户或配置文件模型。这是最好的选择,还是应该使用ReferenceProperty来连接帐户和个人资料?

class UserAccount(db.Model):
    dateCreated = db.DateTimeProperty(auto_now_add=True)
    userid = db.StringProperty()
    password = db.StringProperty()
    emailLower = db.StringProperty()

class Profile(db.Model):
    dateCreated = db.DateTimeProperty(auto_now_add=True)
    firstName = db.StringProperty()
    firstNameUpper = db.StringProperty()
    lastName = db.StringProperty()
    lastNameUpper = db.StringProperty()
    topicTags = db.StringListProperty()
    about = db.StringProperty(multiline=True)
    experience = db.StringListProperty()


account = UserAccount(key_name=uniqueid)
profile = Profile(key_name=uniqueid)

后来我可以通过一些id来查找。我想这限制了每个用户帐户只有一个配置文件应该没问题。在UserAccount和Profile对象中的一个或两个中使用ReferenceProperty对我有什么好处吗?

1 个答案:

答案 0 :(得分:0)

如果您可以计算uniqueid,那么您的机制应该没问题。使用ReferenceProperty没什么好处。