Правила удаления для отношений "многие-к-одному"

Документация Apple по Правилам удаления отношений проста и понятна. Но здесь говорится только об отношении Один-ко-многим (правила удаления для отношения Один-к-одному легко вывести). Непонятно, что означают эти правила для отношений Многие-к-одному . Итак, давайте проясним их здесь.

Мы используем пример Employees-Department , который используется в документации Apple. Хотя в реальной жизни эти правила, применяемые к отношениям Сотрудники-Отдел , могут быть нелепыми, мы, как программисты, говорим здесь только об их логических значениях.

  • Запретить
    Если существует объект в месте назначения отношения, то исходный объект не может быть удален.

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

  • Обнулить
    Удалить исходный объект из обратной связи объекта в месте назначения. (См. Краткое объяснение @bshirley)

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

    [ Вопрос : Если это последний сотрудник, станут ли отношения сотрудников отдела пустыми или пустыми?]
    (Ответил @TechZen: отношение ко многим всегда возвращает установленный объект. Оно никогда не равно нулю. Если на другой стороне отношения нет объектов, набор пуст.)

  • Cascade Удалите объект в месте назначения отношения.

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

    ( Предупреждение об использовании : Обычно это вызывает «шлейфовую цепочку удалений по всему графу объекта», как описано @TechZen в его примере.)

  • Никаких действий
    Ничего не делать с объектом в месте назначения отношения .

    Например, если вы удаляете сотрудника, оставьте его отдел как есть, даже если он все еще считает, что он владеет этим сотрудником.

Значение правил удаления для Многие-ко-многим отсюда можно сделать вывод о взаимосвязи.

12
задан an0 7 July 2011 в 04:16
поделиться