我有一个 SQL Server 数据库,其中包含一个Users
包含以下列的表:
- 用户 ID:nvarchar(128)
- 电子邮件:nvarchar(256)
- ...
我想将用户层次结构添加到我的系统中。这意味着,一个用户将成为“管理员”。其他将是管理员或其他用户的孩子。
所以,我想到了添加一个新列:
- 父用户:hierarchyid
到Users
桌子上。管理员用户将是层次结构的顶级值。其他将放置在其下方。例如:
\b2566df8-9129-405b-a0e6-a56da3b49c5a\79336162-022e-495c-8655-64de1abe556c
\admin-id\normal-user-id
我的问题是 hierarchyid 列不接受nvarchar(128)
(我的用户 ID)作为有效值。因此,我的管理员用户无法在他的[ParentColumn]
.
使用 SQL Server Management Studio 时出现的错误:
尝试了这些值:
- b2566df8-9129-405b-a0e6-a56da3b49c5a
- /b2566df8-9129-405b-a0e6-a56da3b49c5a
一种可能的解决方案是为每个用户创建另一个唯一 ID。但是,现在创建一个 userid 将被 hierarchyid 列接受。但是,我想避免这种解决方案并使用原始用户 ID。
如何解决这个问题?