任何人都有一个创建和管理用户层次结构的示例,用户(员工)可以向其他用户报告。
当用户离开公司时,应将其下属重新分配给离职用户经理。我想我可以用删除触发器来做到这一点。
说我有一张这样的桌子。
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
答案 0 :(得分:2)
你的模特错了。员工应该向职位报告。该职位由员工填补。