在 Google App Engine 数据存储中存储密钥而不是字符串是否有优势。
例如:
class Model(ndb.Model):
user_key = ndb.KeyProperty()
VS
class Model(ndb.Model):
user_id = ndb.StringProperty()
- 为什么要存储 Key 而不是 StringID?仅仅是为了方便吗?
- 哪个使用更少的存储空间?
- 哪个查询更快?
在 Google App Engine 数据存储中存储密钥而不是字符串是否有优势。
例如:
class Model(ndb.Model):
user_key = ndb.KeyProperty()
VS
class Model(ndb.Model):
user_id = ndb.StringProperty()
如果您使用实体组(祖先),则 KeyProperty 将支持这一点。存储 id 时,除非您存储的 id 模型是实体组根,否则您需要存储足够的信息来重建完整密钥。
KeyProperty 将占用更多空间,因为它存储了额外的数据,但在检索其他实体时使用起来可能更方便。查询速度应该是可比的。