Я занимаюсь рефакторингом старой структуры базы данных страны / региона / местоположения в иерархическую таблицу.
Я собираюсь использовать первичный ключ новой таблицы и самоссылающийся столбец ParentID (включенпервичный ключ) в качестве основы для столбца иерархии.
поэтому моя таблица выглядит следующим образом:
PK Имя ParentID HierarchyID
1 World NULL /
2 UK 1/1 /
3 Wigan 2/1/2
Мой вопрос: какие методы были реализованы другими для поддержания актуальности столбцов иерархии при создании записи или родителязапись изменена?
Примечание;Я использую LINQtoSQL (я использую вычисляемый столбецierarchyid.ToString (), чтобы показать происхождение в коде, плюс хранимые процедуры, чтобы дать мне преимущество в производительности запросов к иерархии).
Для управления вставкой / обновлением:
Я рассмотрел возможность переопределения процедур вставки / обновления в LINQtoSQL для моей новой таблицы.
Я рассмотрел использование хранимых процедур для управления обновлением / вставкой новых записей.
Я рассмотрелрекурсивный триггер после вставки / обновления для выполнения обновления на основе ParentID.
Однако я не принял решение, какой курс выбрать!
Кто-нибудь использовал какой-либо из этих методов для управленияhierarchyids?Есть ли лучшие методы, которые я не рассматривал, или я упускаю что-то действительно очевидное !!?