对Employee-Manager关系建模

时间:2017-03-28 10:38:33

标签: database-design

公司A中的每位员工都有一个唯一的员工ID

特定数量的员工组成团队,例如员工1 - 5组成团队A

A队和其他所有团队都有一位经理。经理也是一名员工,拥有自己的员工ID。

建立这种关系的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

以下是一些建议。

<强>地基:

假设员工可能是多个团队的成员,您将需要一个单独的员工表,一个单独的团队表以及两者之间的链接表。

  • ID(PK)
  • 名称

员工

  • ID(PK)
  • 名称

TeamEmployees

  • ID(PK)
  • TeamID(FK-&GT; Team.ID)
  • EmployeeID(FK-&gt; Employee.ID)

<强>负责人:

现在基础工作已经到位,这里是选择开始的地方 - 你可以拥有领导者结构:

团队表 - LeaderEmployeeID(FK-&gt; Employee.ID)

  • 优势 - 每个团队一名领导,简单
  • 可能的缺点(取决于要求) - 领导者不一定必须是TeamEmployees表中存在的员工,可能需要进行额外检查

TeamEmployees表 - IsLeader(位)

  • 可能的优势(取决于要求) - 领导者必须始终是团队成员
  • 可能的缺点(取决于要求) - 设计允许每个团队不止一个领导者,需要额外的限制来解决这个问题