1

Closure Table を使用して階層ユーザー グループを表現したことがある人はいますか? オンラインで見つけたすべての例で、ノードの ID は構造内で常に一意です。

この問題を想像してみてください: 私のソフトウェアの従来のセキュリティ管理では、ユーザーのリストとグループのリストがあり、ユーザーが複数のグループに所属でき、各グループが他のグループを含むことができるようにしたいと考えています。 .

ユーザー テーブル:

ID | ユーザータイプ | 名前

(レコードがユーザーを表す場合、UserType は 0、グループ 1 の場合)

テーブル UserHC Id | 親 ID | レベル

「MyID」がすでに存在する場合(主キーが Id、ParentId であるため)、既に知られている挿入する古典的なコマンドを分析すると、うまくいきません。

INSERT INTO UserHC ( [Id], [ParentId], [Level] ) select {MyID} as [Id], [ParentId], [Level] +1 UserHC from [Id] = {myid} UNION ALL SELECT {MyID} , {myId} , 0

* MyId は新しい Users.Id です

複雑な分析を行う前に、同様の要件をすでに持っている人がいるかどうか、またそれをどのように解決したか疑問に思っていました。

ありがとう

4

0 に答える 0