我正在开发一个基于googleappengine的web应用程序(Webapp2/Python和ndb)。 我正在使用googleoauth2身份验证,并将我通过的googleId存储在ndb的自定义用户实体中users.get_当前用户().user_id()。 因此,这个实体有一个id(由ndb自动提供)和一个名为googleId的属性,这是我设置的。 我使用这个用户对象作为存储在ndb中的其他已用数据的共同祖先。在
这种方法很烦人,因为为了避免多个ndb查询(每个请求一个),我必须在会话中存储当前登录用户的id,它的googleid,并验证它是否与当前登录的用户不同。在
因此,我考虑使用googleId作为ndb实体的键,并在祖先查询中使用它。 像
mu = MyUser(id = users.get_current_user().user_id())
mu.put()
它工作得很好,但我想知道是否有任何合理的理由不这样做(例如,googleId可能比ndb id属性的最大大小长,等等)
我需要查看您的
MyUser
模型(也许还有一些其他代码)以更加自信,但是,假设这一切都是在一个非常正常的安排中,我认为您不会遇到任何麻烦。在数据存储ID可能很长,
user_id
也不应该太大(不幸的是,这两个限制都没有严格记录,但我个人也不会过分担心这两个限制)。在相关问题 更多 >
编程相关推荐