我正在设计一个用户管理系统。
用户可以是经理或简单用户。如果经理登录,他应该能够看到在他手下工作的所有员工或用户。
例:
M1 -> U1, U2, M11
and M11-> U3, U4, M12
and M12 -> U5, U6, U7
当M1登录时,他应该看到U1,U2,M11,U3,U4,M12,U5,U6,U7的数据
如果 M12 登录,则仅 U5、U6、U7。
如果我正确理解了您的问题,那么下面是一个示例
DECLARE @tblEmployee AS TABLE ( EmployeeId INT IDENTITY(1,1),
FName VARCHAR(100),
LName VARCHAR(100),
ManagerId INT NULL -- Reference of EmployeeId
)
您可以通过上面的表结构完成任务,并应用CTE公用表表达式进行报复。
层次结构数据类型的另一种方式是 https://learn.microsoft.com/en-us/sql/relational-databases/tables/lesson-1-1-examining-the-current-structure-of-the-employee-table?view=sql-server-2017