2012-06-19 2 views
3

다음과 같은 모델이 있다고 가정 해 보겠습니다. 의 위의 두 가지 모델의Google 앱 엔진 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