@priority

Есть ли простое решение перенести поддерево hierarchyid в mssql?

У меня есть иерархическая структура данных:
CREATE TABLE [Employees] (
	[Id] INT identity(1, 1) PRIMARY KEY
	,[Hid] HIERARCHYID NOT NULL
	,[Name] VARCHAR(50) NULL
	,[Secondname] VARCHAR(50)
	,[Surname] VARCHAR(50)
	,[BossId] INT FOREIGN KEY REFERENCES [Employees]([Id])
	,[PositionId] INT FOREIGN KEY REFERENCES [Positions]([Id])
	,[DepartmentId] INT FOREIGN KEY REFERENCES [Departments]([Id])
	,[RecruitDate] DATE NOT NULL
	);

Таблица представляет собой данные о сотрудниках и их руководителях. Если где-то по середине иерархии я решу сменить руководителя, то получается, что я изменю столбец Hid, таким образом, у предков (подчиненных) этого узла будет неправильный Hid.GetAncestor(1). И такая же ситуация будет у потомков потомков. Получается, надо делать рекурсивную замену всех дочерних узлов.

Есть ли более простой способ (или уже существующий метод) сделать такую штуку?

Спасибо.
  • Вопрос задан
  • 13 просмотров
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы