0

我有一个 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。

如何解决这个问题?

4

0 回答 0