SQL Server: иерархия и nvarchar
У меня есть база данных SQL Server, которая включает в себя Users
таблица со следующими столбцами:
- ИД пользователя: nvarchar(128)
- электронная почта: nvarchar (256)
- ...
Я хочу добавить иерархию пользователей в мою систему. Это означает, что один пользователь будет "администратором". Другие будут детьми администратора или других пользователей.
Итак, я подумал о добавлении нового столбца:
- ParentUser:ierarchyid
к Users
Таблица. Пользователь-администратор будет иметь значение верхнего уровня иерархии. Другое будет размещено под ним. Например:
\b2566df8-9129-405b-a0e6-a56da3b49c5a\79336162-022e-495c-8655-64de1abe556c
\admin-id\normal-user-id
Моя проблема в том, что столбец иерархии не принимает nvarchar(128)
(мой идентификатор пользователя) в качестве допустимого значения. Таким образом, мой администратор не может получить значение "\b2566df8-9129-405b-a0e6-a56da3b49c5a" в своем [ParentColumn]
,
Ошибка, которую я получаю при использовании SQL Server Management Studio:
Пробовал эти значения:
- b2566df8-9129-405b-a0e6-a56da3b49c5a
- / B2566df8-9129-405b-a0e6-a56da3b49c5a
Одним из возможных решений является создание другого уникального идентификатора для каждого пользователя. Но теперь создайте идентификатор пользователя, который будет принят столбцом иерархии. Но я хочу избежать этого решения и использовать оригинальный идентификатор пользователя.
Как это решить?