任何人都可以在SQL Server中为用户表结构提供用户的角色层次结构吗?如果还要给出SQL查询,将不胜感激。
用户层次结构必须如下所示......
CEO
|
VP
|
----------------------------
| |
Sales Manager 1 Sales Manager 2
| |
----------------- ------------------------
| | | | |
Sales Person1 SP2 SP3 SP4 SP5
答案 0 :(得分:1)
角色表:
RoleId
RoleName
用户表:
UserId
UserName
RoleId
ManagerId
这取决于您在查询中的内容。一个简单的就是这样:
select
u.UserName as UserName,
r.RoleName as UserRole,
ISNULL(m.Name, 'No Manager') as ManagerName,
ISNULL(mr.Name, '') as ManagerRole
FROM Users u
INNER JOIN Roles r on r.RoleId = u.RoleId
LEFT JOIN Users m on m.UserId = u.ManagerId
INNER JOIN Roles mr on r.RoleId = m.RoleId