2016-07-29 51 views
2

考虑保留员工记录的系统。数据库应该存储员工姓名,部门等。每个员工都有一个报告管理员,他必须向他报告。 有4个级别的员工 -为此示例数据库绘制ERD

  1. 初级工程师
  2. 高级工程师
  3. 团队负责
  4. 高层团队领导

每个初级工程师拥有高级工程师报告。每位高级开发人员都必须向团队负责人汇报。每个团队领导都必须向高级团队主管汇报。

我来到了这个想法: -

将有两个表

1.Employee

2.Reporting

Employee table将包含诸如雇员所需的信息,员工姓名,部门名称等;主键是EmployeeID

Reporting Table将包含两列EmployeeID和ReportingMangerID; EmployeeID是与员工表的主键相关的外键。

我不知道我是否正确。

回答

1

如果符合下列条件:

  • 一个员工的报表给其他员工0..1
  • 一个员工都有0..N报告

然后你就可以有 “经理”作为雇员表的属性。

如果符合下列条件:

  • 一名员工报告0..N其他员工
  • 一个员工都有0..N报告

然后,你需要有你的结构。

+0

我认为第一个条件是真的。在那种情况下不需要额外的表格,对吧? – BlackCat

+0

“经理”实际上成为“员工”的属性,因此您不需要额外的表格。 –

+1

由于此问题标记为ERD,请注意,在ER中,属性是从实体集到值集的映射,而不是从实体集到实体集的映射。你所描述的是非规范化的关系而不是属性。 – reaanb