Google应用引擎ReferenceProperty vs Key

时间:2012-06-19 04:17:22

标签: python google-app-engine

让我们说我们有以下模型。

    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,并从关键字获取头像。更好的我指的是哪一个 使用最少数量的数据库查询。

1 个答案:

答案 0 :(得分:3)

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