Закрытие таблицы с разнородными типами узлов
Я работаю с таблицей закрытия, которая манипулирует различными типами узлов:"программа", "проект", "регион",....
На самом деле у меня есть таблица местоположений, в которой есть идентификаторы всех моих узлов, пусть эта таблица называется "StructureElement" . Из этой таблицы наследуются наши узлы:"program", "project", "region", .... Тогда у меня есть таблица закрытия, которая связывает эти элементы вместе.
Проблема в том, что я могу удалить программу из таблицы "программа", и она все равно будет существовать в таблице закрытия.
Как я могу исправить это, не используя триггеры?