2014-07-11 23 views
0

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

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

说我有这样一张桌子。

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

你想要发生什么? –

+0

处理这种类型层次结构的另一种方法是使用嵌套集合。你可以从google找到大量关于嵌套集的信息。 –

回答

2

你的模式是错误的。员工应该向某个职位报告。该职位由一名员工填补。

+0

我并不反对这一点,但它确实带来了自己的挑战。通常情况下,公司变更给定的人最终会填补多个职位。这当然很容易处理,但这是必须考虑的事情。 –

+0

@SeanLange我的答案没有解决哪部分内容?没有任何关于这可以防止员工填补多个职位。 – Paparazzi

+0

我没有说它没有。我试图指出,你不想在一个人和一个职位之间以1:1的比例。 –

相关问题