在将Google Apps2 Auth用户对象存储为Google应用引擎ndb域实体中的参考时,尝试找出最佳做法。
我能想到的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 vs key有什么好处?假设UserProperty是旧的做事方式吗?
答案 0 :(得分: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.
"""