Исходя из того, что вы спрашиваете, я думаю, вам следует сначала переосмыслить структуру вашей базы данных.
Ответьте на следующие вопросы:
Имеет ли смысл иметь student
с несуществующим education
?
Это было бы в случае, если вы удалили education
из вашей таблицы Educations
, но в вашей базе данных остались студенты с FK для этой строки education
. Кажется, это то, о чем вы просите, но это не имеет особого смысла, поскольку не обеспечивает целостность данных.
Разрешено ли вам удалять education
, если студенты зачислены в указанный education
?
Если это нельзя разрешить, вам нужно будет только отключить каскадное удаление в отношениях 1 ко многим, и ваша проблема будет решена.
Если удалить eduction
, должны ли все учащиеся, назначенные для данного образования, оставаться в базе данных?
Это то, что вы хотите, но со структурой вашей базы данных это не так просто достичь.
Более простое решение?
Можно было бы создать 3 таблицы вместо 2:
- 1038 * Образования *
- Студенты
- StudentsEducationAssignments
В 1 вы храните все, что связано ТОЛЬКО с вашими education
сущностями. В 2 только то, что имеет отношение к вашим student
сущностям (обратите внимание, что какой тип education
они выбирают, это не то, что ТОЛЬКО описывает student
). В 3 вы храните, какие ученики назначены для каких образований.
Таким образом, если вы удалите education
, назначенные ему учащиеся не будут удалены, только информация, которая связывает учащихся с этим конкретным education
. Таким образом вы сохраняете целостность базы данных проще.
Надеюсь, это поможет.