2012-03-15 3 views

ответ

2

Возможно, вам поможет чтение свыше this.

Из документации:

Для обозначения родителя Субъекта, используйте родительский аргумент в конструктор класса модели при создании дочерней сущности. Значение этого аргумента может быть самим родительским объектом или его ключом; вы можете получить ключ , вызвав метод key() родительского объекта. Следующий пример создает объект в своем роде Адрес и показывает два способа назначения объекта Employee в качестве родителя:

#Create Employee entity 
employee = Employee() 
employee.put() 

#Set Employee as Address entity 's parent directly... 
address = Address(parent=employee) 

# ...or using its key 
e_key = employee.key() 
address = Address(parent=e_key) 

# Save Address entity to datastore 
address.put()​ 
2

сущности в хранилище данных могут необязательно иметь родительский объект; «родительский ключ» является ключом родительского объекта.

Первоначально (и все же в хранилище данных ведущего-ведомого) транзакции были возможны только между объектами в одной и той же группе сущностей, которая представляет собой набор объектов с общим объектом-предком. В хранилище данных HR доступны транзакции с групповыми сущностями, хотя они доступны только для пяти групп сущностей.

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

2

Родительские ключи используются для создания групп сущностей. Когда один или несколько объектов хранилища данных совместно используют предка, они, как говорят, являются частью одной и той же группы сущностей.

Это вступает в игру с точки зрения того, как вы пишете транзакционные операции хранилища данных. Если все объекты, которые должны быть изменены, не являются частью одной и той же группы сущностей, вы должны указать, что происходит Cross-group transaction.

Смежные вопросы