以下实体关系是否正确?我正在尝试链接员工,时间表和审批人表。
其他几个表格和字段很少,但对于这个问题,我主要关注的是以下三个表格。一名员工可以拥有超过时间表的批准者。
Employee
--------
EmpID pk
Name
TimeSheet
------------
TSHEET_ID PK
FK_EmpID FK
Approved_By
Timesheet_Approver (one employee can have more than one approver
but only one will be approving the timesheet)
------------------
EmpID
Approver_EmpID
员工表数据:
EmpID Name
----- -----
1 john
2 david
3 mark
时间表审批人数据:
EmpID Approver
----- --------
1 2
1 3
2 3
时间表
TSID EMPID APPROVED_BY
---- ----- -----------
101 1 2
102 1 3
103 2 3
或者这看起来没问题?
答案 0 :(得分:1)
为什么要将Approver
作为单独的表?您可以在员工表中保留Bit
字段IsApprover
吗?否则,您正在创建redundancy
答案 1 :(得分:0)
我觉得设计有问题。这是我的想法。
<强>员工强>
EmpID pk
名称
<强>的TimeSheet 强>
TSHEET_ID PK
FK_EmpID
Approved_By
第三张表是不必要的。
答案 2 :(得分:0)
如果有多个批准,我们无法在TimeSheet表中添加名为Approved_by的列。 然后我们可以再添加两个关系。一个是批准者名单。
<强>批准者强>
ApproverID
系
名称
<强> TimeSheetApproves 强>
TimeSheetID
Department1ApproverID
Department2ApproverID
..........................等等
不要忘记将Approved_by删除到TimeSheet实现。
答案 3 :(得分:0)
<强>员工强>
EmpID - Pk
名称
<强>的TimeSheet 强>
TSHEET_ID - PK
EmpID - FK
ApproverID - FK
<强>批准者强>
ApproverID -PK
系
好的,这是我的最终答案。如果它不适合你可以尝试自己的。我没有时间阅读所有这些评论。而我正在努力帮助你。 使用审批人关系,您可以获得部门和其他事项的审批人。检查sql查询以获取这些数据。