你们中的任何人曾经使用过闭包表来表示层次用户组吗?在我在网上找到的所有示例中,节点的 id 在结构中始终是唯一的。
尝试想象这个问题:在我的软件中的经典安全管理中,我有一个用户列表和一个组列表,我想确保一个用户可以属于多个组,每个组又可以包含其他组.
用户表:
身份证 | 用户类型 | 姓名
(如果记录代表用户,则 UserType 为 0,如果是组 1)
表 UserHC Id | 父 ID | 等级
分析插入已知的经典命令,如果“MyID”已经存在(因为主键是 Id,ParentId),那就不好了。
INSERT INTO UserHC ( [Id], [ParentId], [Level] ) select {MyID} as [Id], [ParentId], [Level] +1 from UserHC where [Id] = {myid} UNION ALL SELECT {MyID} , {myId} , 0
*其中 MyId 是新的 Users.Id
在我进行复杂分析之前,我想知道你们中是否有人已经有类似的要求以及如何解决它。
谢谢