2

Webapp2Authユーザーオブジェクトを参照としてGoogleAppEnginendbドメインエンティティに保存する際のベストプラクティスを理解しようとしています。

私がそれをするために考えることができる3つの方法

class MyEntity(ndb.Model):
  users = ndb.UserProperty(repeated=True)

また

class MyEntity(ndb.Model):
  users = ndb.StringProperty(repeated=True)

webapp2ユーザーオブジェクトのユーザーIDを次のように保存します。

user.get_id()

また

class MyEntity(ndb.Model):
  users = ndb.KeyProperty(repeated=True)

webapp2ユーザーオブジェクトのユーザーキーを次のように保存します。

user.key

ここでのベストプラクティスがわかりませんか?特に、user_idとkeyを保存することに利点はありますか?UserPropertyが古いやり方だとしたら?

4

1 に答える 1

3

UserPropertyを避け、代わりにIDを保存してください。

ソースから直接...

# google/appengine/ext/ndb/model.py:1711

class UserProperty(Property):
  """A Property whose value is a User object.

  Note: this exists for backwards compatibility with existing
  datastore schemas only; we do not recommend storing User objects
  directly in the datastore, but instead recommend storing the
  user.user_id() value.
  """
于 2013-03-13T00:44:55.877 に答える