Разница между Embedded Entity и Entity, использующей путь предка в хранилище данных GCP - PullRequest
0 голосов
/ 29 мая 2018

Я не мог понять разницу между Embedded Entity и Entity, используя путь предка в хранилище данных GCP.

Я мог понять следующие вещи.

  • Используя путь предка, он можетуправляйте сущностями различного вида, но существует ограничение записи 1 раз / сек.
  • Путь предка обеспечивает строгую согласованность

Но эти вещи аналогичны использованию встроенной сущности.

Так что я путаю, как правильно использовать встроенную сущность и путь предка.


Сейчас я разрабатываю модель для формы, такую ​​как Google Form.

В нее можно свободно добавлять элементыпоэтому я думаю использовать встроенную сущность с именем Item или создать вид с именем Item и использовать путь Ancestor для класса Form.

1 Ответ

0 голосов
/ 29 мая 2018

Встроенная «сущность» не является реальной сущностью, это просто свойство внутри «контейнерной» сущности, в которую она встроена.Из Вложенные сущности (выделено мной):

Иногда может оказаться удобным встроить одну сущность как свойство другой сущности.

У вас все еще есть ограничение 1 запись / сек для этого объекта-контейнера.И вы не можете обновить только встроенную «сущность», вы должны обновить всю сущность «контейнера».

Встроенная сущность может выглядеть строго согласованной, но только в том смысле, что она согласованас другими данными в сущности «контейнер» (здесь ничего особенного, то же самое верно для любого свойства внутри сущности).Это все еще в конечном счете непротиворечиво, когда дело доходит до выполнения запросов, используя его значения.И вы не можете делать такие запросы внутри транзакций.

С другой стороны, сущности, связанные родословной, являются реальными, отличными сущностями, и все они находятся внутри одной и той же группы сущностей.На всю группу объектов распространяется ограничение 1 запись / сек.Запросы предшественников имеют область действия, ограниченную соответствующей группой сущностей, строго согласованные могут выполняться внутри транзакций.

Если вам нужна сильная согласованность, то вы должны использовать происхождение хранилища данных, чтобы связать соответствующие сущности вместе,

В противном случае вы можете использовать либо встроенные сущности, либо просто простые сущности другого вида и устанавливать отношения между сущностями, используя свойства Key.См. Также Категории продуктов электронной коммерции в Google App Engine (Python)

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