Я собираюсь пойти с Option Other
. Хотя это и не определено ни в одном из прочитанных мною руководств по целостности данных, включая Oracle, в которых в качестве параметров указаны только NULL, CASCADE, RESTRICT, NO ACTION, DEFAULT, я собираюсь свернуть свое собственное.
Вот что произойдет, если кто-то еще не убедит меня в лучшем подходе.
PlantGroups
===========
... data ...
PlantId
Plant
=====
PlantId
bool isActive
При удалении Plant isActive будет иметь значение false. Это приведет к большому количеству дополнительной логики, которая будет включена в управление базой данных, но позволит поверхностно удалить эти зависимые поля. Вариант каскадного удаления, возможно, будет использоваться в качестве окончательного варианта где-то для устаревших данных, возраст которых превышает определенное количество лет.
1010 * Альтернативно *
У меня также может быть вторая база данных, которая имеет ту же схему, что и первая, и содержит удаленные данные.