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 です
複雑な分析を行う前に、同様の要件をすでに持っている人がいるかどうか、またそれをどのように解決したか疑問に思っていました。
ありがとう