5

在 Google App Engine 数据存储中存储密钥而不是字符串是否有优势。

例如:

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

VS

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

1 回答 1

5

如果您使用实体组(祖先),则 KeyProperty 将支持这一点。存储 id 时,除非您存储的 id 模型是实体组根,否则您需要存储足够的信息来重建完整密钥。

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

于 2012-02-11T06:33:05.143 回答