Документация Apple по Правилам удаления отношений проста и понятна. Но здесь говорится только об отношении Один-ко-многим (правила удаления для отношения Один-к-одному легко вывести). Непонятно, что означают эти правила для отношений Многие-к-одному . Итак, давайте проясним их здесь.
Мы используем пример Employees-Department , который используется в документации Apple. Хотя в реальной жизни эти правила, применяемые к отношениям Сотрудники-Отдел , могут быть нелепыми, мы, как программисты, говорим здесь только об их логических значениях.
Запретить
Если существует объект в месте назначения отношения, то исходный объект не может быть удален.
Например, если вы хотите удалить сотрудника, независимо от того, есть ли еще другие сотрудники в его отделе, вы должны убедиться, что отдел сначала был удален, иначе сотрудник не может быть удален.
Обнулить
Удалить исходный объект из обратной связи объекта в месте назначения. (См. Краткое объяснение @bshirley)
Например, если вы удаляете сотрудника, удалите его из отношений сотрудников его отдела. Это имеет смысл только в том случае, если количество оставшихся сотрудников отдела превышает требуемое минимальное количество, или если вы убедитесь, что добавляете новых сотрудников для отдела перед следующей операцией сохранения.
[ Вопрос : Если это последний сотрудник, станут ли отношения сотрудников отдела пустыми или пустыми?]
(Ответил @TechZen: отношение ко многим всегда возвращает установленный объект. Оно никогда не равно нулю. Если на другой стороне отношения нет объектов, набор пуст.)
Cascade Удалите объект в месте назначения отношения.
Например, если вы удаляете сотрудника, удалите его отдел одновременно, даже если в отделе все еще есть другие сотрудники.
( Предупреждение об использовании : Обычно это вызывает «шлейфовую цепочку удалений по всему графу объекта», как описано @TechZen в его примере.)
Никаких действий
Ничего не делать с объектом в месте назначения отношения .
Например, если вы удаляете сотрудника, оставьте его отдел как есть, даже если он все еще считает, что он владеет этим сотрудником.
Значение правил удаления для Многие-ко-многим отсюда можно сделать вывод о взаимосвязи.