я иметь следующую структуру: циклов или многократный каскад удаления
- Каждый человек имеет конкретную область
- Каждый проект имеет конкретную область и каждый проект имеет конкретное лицо.
- Все поля являются не обнуляемым (одна и только одна связь)
Стандарт «живой» ситуации, бизнес-логика верна. DB тоже правильная и работает нормально. Но когда я добавить каскадное удаление для каждого из этих отношений, конечно, я получаю ошибку:
'Persons' table
- Unable to create relationship 'FK_Persons_Areas'.
Introducing FOREIGN KEY constraint 'FK_Persons_Areas' on table 'Persons' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
Could not create constraint or index. See previous errors.
Я понимаю, почему это произошло (каскадное удаление). Например, если область удалена, все проекты, у которых есть этот идентификатор AreaID, должны быть удалены, и все лица, у которых есть этот идентификатор AreaID, должны быть удалены, а затем все проекты, которые удалили людей, должны быть удалены ... Как решить Эта проблема? Я пытался добавить еще одну таблицу с именем ProjectAreas:
, но это не решает проблему. Кроме того, не имея четкого понимания того, что проект имеет одну и только одну область.
Второй вопрос - действительно ли необходимо решить эту проблему? Возможно, схемы с тремя таблицами достаточно, и проблема с удалением должна быть решена на уровне приложения?