2012-06-19 48 views
3

可以說我們有以下模型。谷歌應用引擎ReferenceProperty與密鑰

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的化身,而不是從鑰匙獲得頭像。更好的意思是哪一個 使用最少數量的數據庫查詢。

回答

3

這兩種方法都會導致相同數量的查詢;使用ReferenceProperty只需要編寫更少的代碼(因此通常被認爲是正確的方式)。

+0

感謝您的回覆。這清除了我的懷疑。 – specialscope