Прежде всего, вы не должны думать о сущностях, находящихся в структуре parent-child / tree, если ваш граф объектов активно не применяет такую структуру. В большинстве случаев это не так, и любые два объекта являются структурными равными. Похоже, это относится к вашим объектам «Клиент» и «Заказ».
Это важная концепция для понимания, потому что, в отличие от обычной древовидной структуры, в графе данных базовых данных вы можете вводить график в любом экземпляре любого объекта и перемещать отношения в любом направлении, например Вам не нужно всегда извлекать Customer
объект для запуска, вы можете при необходимости извлекать Order
объект так же легко.
В данном конкретном случае вы выбираете Customer
объекты и хотите найти все связанные Order
объекты. Ваша модель данных должна выглядеть примерно так:
* * 1010
Теперь, каждый раз, когда вы создаете новый объект Order
, вы автоматически связываете его с соответствующим объектом Customer. Когда вы выбираете какой-либо конкретный объект Customer
, все связанные с ним объекты Order
доступны в отношении Customer.orders
.
Если вы хотите суммировать стоимость всех заказов клиента, вы можете использовать оператор сбора следующим образом:
NSNumber *orderSum=[Customer.order valueForKeyPath:@"@sum.orders.cost"];
Отношения очень важны для базовых данных.