Ключ хранения GAE против StringID - PullRequest
5 голосов
/ 11 февраля 2012

Есть ли преимущества для хранения ключей над строкой в ​​хранилище данных Google App Engine.

Например:

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

VS

class Model(ndb.Model):
    user_id = ndb.StringProperty()
  • Почему вы хотите хранить ключ вместо StringID? Это только для удобства?
  • Который использует меньше места для хранения?
  • Что быстрее сделать запрос?

1 Ответ

5 голосов
/ 11 февраля 2012

Если вы используете группы сущностей (предки), KeyProperty будет поддерживать это.При сохранении идентификатора, если только модель, идентификатор которой вы храните, не является корнем группы сущностей, вам потребуется хранить достаточно информации для восстановления полного ключа.

KeyProperty займет больше места, поскольку хранитдополнительные данные, но это может быть более удобно использовать при извлечении другого объекта.Скорость запроса должна быть сопоставимой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...