Подтвердить что ты не робот

Понимание основных правил удаления данных для One to Many

Я немного расплывчатый о правилах удаления основных данных. Поэтому, если кто-то может помочь мне ответить на несколько вопросов о них.

У меня есть сущности A и B. A имеет отношение to-Many с B, а B имеет отношение to-One с A.

а < --- → Б

Теперь, если я устанавливаю правило удаления с A на Cascade, я понимаю, что он удалит все связанные с ним B. Но если я установил его в Nullify, он установит Bs в NIL или только внешний ключ в Nil?

И я везде искал отношения от B до A, должен ли я установить его на Nullify? Будет ли это просто Nullate "B Object" в A? Или это Nullify все Bs, связанные с A? Как насчет Каскада? Удалит ли он все B, связанные с A, или только конкретный B?

Или я просто использую "No Action" для отношения из B в A, чтобы при удалении B никаких изменений не произошло с A, но ссылка на B не будет существовать?

Я ПРЕКРАТЬ с ними, поэтому извините мои вопросы.

Спасибо.

4b9b3361

Ответ 1

Если вы установите правило удаления "nullify" и удалите объект A, ссылки на этот объект в Bs будут удалены. Обратное работает одинаково. Если у вас есть каскад и удаление B, то он удалит A, на который указывает B. Затем он будет следовать правилу удаления от A до оставшихся Bs (либо каскад, либо nullify).

Установленные вами правила действительно зависят от вашей модели данных. Если A был клиентом, а B - их заказами, вы могли бы установить правило A- > B, чтобы запретить (чтобы A не удалялся, если клиент имеет заказы) или каскадом (удалите заказы при удалении клиента). Правило B- > A, вероятно, будет "аннулировать". Если заказ удален, просто удалите ссылку на заказ от клиента.

Правила удаления отношений описаны в Руководстве по программированию ядра Apple Core