标签: database database-design entity-relationship erd
我有一个案例,员工互相提交同行评审。收件人请求反馈和提交者(一个或多个)提交反馈。员工无法自我审核。
1)我可以使用一张桌子作为'员工'并将其用作收件人和提交者等2个实例?
2)我可以使用'员工'表然后自我引用它以避免任何冗余?我正在考虑如何通过约束来实现这一点,因为员工无法通过应用条件提交自己的审核,因为员工ID在提交/请求反馈时不应该相等。
答案 0 :(得分:0)
不确定在哪里看到冗余,但这样的事情应该有效。
答案 1 :(得分:0)
1)您可以与两个角色建立关系,这两个角色均由员工填写。但是,不要将行/表与实体/实体类型混淆。
2)我假设员工可以多次提交反馈,并且不止一次收到反馈。如果是这样,您将拥有多对多关系,无法通过引入冗余将其非规范化到Employee表中。带有检查约束的单独表,以防止提交者与收件人相等,听起来是合适的。