您是否曾使用Closure Table来表示层次结构用户组? 在我在网上找到的所有例子中,节点的id在结构中始终是唯一的。
试着想象一下这个问题: 在我的软件中的经典安全管理中,我有一个用户列表和一个组列表,我想确保一个用户可以属于多个组,每个组又可以包含其他组。
用户表:
Id | UserType |名称
(如果记录代表用户,则UserType为0,如果是组1)
表UserHC Id | ParentId |水平
分析要插入的经典命令已经知道如果“MyID”已经存在(因为主键是Id,ParentId)不会很好。
插入UserHC([Id],[ParentId],[Level]) 从UserHC中选择{MyID}为[Id],[ParentId],[Level] +1,其中[Id] = {myid} UNION ALL SELECT {MyID},{myId},0
* MyId是新用户.Id
在我做一个复杂的分析之前,我想知道你们中是否有人有类似的要求以及你们是如何解决它的。
感谢