谷歌应用引擎中的ReferenceProperty与Key的区别

3
假设我们有以下模型。
    class User(db.Model):
        username=db.StringProperty()
        avatar=db.ReferenceProperty()

    class User(db.Model):
        username=db.StringProperty()
        avatar=db.StringProperty()

    class Avatar(db.Model):
        avatarLink=db.StringProperty

    class UserDataHandler:
        def adduserdata():
            userid="uniqueid1"
            avatarid="uniqueid2"
            user=User(key_name=userid)
            avatar=Avatar(key_name=user)
            avatar.avatar="http://zy.jpg"
            avatar.put()
            user.username="username"
            user.avatar=avatar
            #user.avatar=avatarid

在上述两种模型中,使用ReferenceProperty模型还是存储头像的key_name并从key获取Avatar更好呢?在这里,"更好"指的是哪个模型使用最少的数据库查询。
使用ReferenceProperty模型可以减少数据库查询次数。
1个回答

3

两种方法都会产生相同数量的查询;使用ReferenceProperty只需要少写一些代码(因此通常被认为是正确的方法)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接