Хранилище данных Google App Engine позволяет каждой сущности иметь родительскую сущность , по сути, способ формирования иерархии сущностей . Например, Employee
может быть адресовано как:
Company#521/Department#5/Employee#3
Идентификатор объекта уникален только среди объектов с одним и тем же родителем, поэтому для его уникальной адресации требуется полный путь к объекту.
Пока все хорошо.
Но когда мне следует смоделировать отношения родитель-потомок таким образом, а не полагаться на базовое ссылочное свойство внутри сущности, как в традиционной базе данных?
Единственная причина, по которой я могу придумать, - это обойти отсутствие объединений в запросе хранилища данных. Я могу фильтровать запрос только по свойствам от объекта, вид которого я получаю, и от любого объекта, который является родителем на любом уровне в иерархии объекта.
Любая другая причина использовать эту функцию?
Документация хранилища данных говорит, что объекты, принадлежащие к одной и той же иерархии, рассматриваются как группа объектов , и что объекты в той же группе объектов имеют сериализованный доступ для записи. Что именно это означает? Означает ли это, что если один поток моего приложения обновляет Department#5
, другой поток, который пишет в Employee#3
, должен будет ждать завершения этого обновления?
Спасибо!