任何人都有维护员工等级的例子吗?

时间:2014-07-11 19:28:41

标签: sql-server-2008 tsql hierarchical-data

任何人都有一个创建和管理用户层次结构的示例,用户(员工)可以向其他用户报告。

当用户离开公司时,应将其下属重新分配给离职用户经理。我想我可以用删除触发器来做到这一点。

说我有一张这样的桌子。

   CREATE TABLE Employees
    (empid int NOT NULL,
     mgrid int NULL,
     empname varchar(25) NOT NULL,
     salary money NOT NULL,
     lvl int NULL,
     hierarchy varchar(900) NULL,
     CONSTRAINT PK_Employees_empid PRIMARY KEY(empid),
     CONSTRAINT FK_Employees_mgrid_empid
       FOREIGN KEY(mgrid)
       REFERENCES Employees(empid))

它很容易查询拥有特定经理的所有用户,但是当经理被重新分配时会发生什么......以及他们下面的所有用户?

[更新] 我刚刚发现使用新的SQL 2008数据类型HierarchyId可能有更好的方法,阅读此http://beyondrelational.com/modules/4/whatisnew/468/features/10585/sql-server-2008-hierarchyid-will-allows-you-to-efficiently-store-and-query-hierarchial-data.aspx

1 个答案:

答案 0 :(得分:2)

你的模特错了。员工应该向职位报告。该职位由员工填补。