GAE存储密钥与StringID

时间:2012-02-11 03:58:54

标签: google-app-engine google-cloud-datastore key app-engine-ndb

在Google App Engine数据存储区中存储Keys over String是否有优势。

例如:

class Model(ndb.Model):
    user_key = ndb.KeyProperty()

VS

class Model(ndb.Model):
    user_id = ndb.StringProperty()
  • 为什么要存储Key而不是StringID?这只是为了方便吗?
  • 哪个使用的存储空间更少?
  • 哪个查询速度更快?

1 个答案:

答案 0 :(得分:5)

如果你正在使用entity groups(祖先),KeyProperty将支持它。存储id时,除非您存储的id的模型是实体组root,否则您需要存储足够的信息来重建完整的密钥。

KeyProperty将占用更多空间,因为它存储了额外的数据,但在检索其他实体时使用它可能更方便。查询速度应具有可比性。