Базовые данные: как удалить сущности в отношениях - PullRequest
3 голосов
/ 10 марта 2010

У меня сложный график основных данных на iPhone. Пользовательский объект имеет много других объектов, которые связаны друг с другом множеством взаимосвязей и т. Д. *

У меня вопрос, как я могу удалить все связанные сущности, когда удаляю сущность пользователя.

Заранее спасибо!

Ответы [ 2 ]

6 голосов
/ 10 марта 2010

В вашей сущности пользователя установите для каждого правила удаления отношений значение "каскад".

Также см. этот ответ - Базовые данные iPhone: каскадное удаление в отношениях «многие к одному» .

3 голосов
/ 10 марта 2010

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

Например,

user--(phoneNumbers,Cascade)->>phoneNumber
user<--(user,nullify)--phoneNumber

Удаление пользователя вызывает удаление phoneNumber, но удаление phoneNumber просто сводит на нет отношения с пользователем. В противном случае пользовательский объект не затронут.

Если у вас есть дерево ...

- пользователей (номера телефонов, Cascade) - >> PHONENUMBER - (номера телефонов, Cascade) - >> areaCodes

... затем удаление пользователя удаляет все его номера телефона, а удаление номера телефона вызывает удаление всех его кодов области

...