Реферат: Иерархические структуры данных в реляционных БД
END ^
/*
Триггер после обновления - контролирует правильность поля Level
*/
CREATE TRIGGER "CATALOG_AFTER_UPD" FOR "CATALOG"
ACTIVE AFTER UPDATE POSITION 0
AS
BEGIN
update "CATALOG" set "LEVEL" = NEW."LEVEL"+1 where "PARENT_ID" = NEW."ID";
END ^
структура с потабличным хранением уровней
Запросы на вставку и перемещения тривиальны, и потому не приводятся. При удалении элемента можно ввести дополнительный триггер для удаления потомков, аналогично триггеру для структуры со ссылкой на предка.
структура с хранением границ ветви
Вставка и удаление аналогичны случаю структуры со ссылкой на предка. Перемещение элемента в общем случае невозможно без перегенерации первичных ключей элементов, поэтому применяется редко.
Заключение
Ну вот, пожалуй, и все. Надеюсь, что данная статья будет вам полезна. Если у вас появились замечания, предложения или Вы обнаружили какие-либо ошибки, пишите мне [email protected]