实体关系图中的自引用或单独的冗余表

Self Referencing or Separate Redundant Tables in Entity Relationship diagram

我有一个案例,员工互相提交同行评审。接收者请求反馈,提交者(一个或多个)提交反馈。员工不能自我审查。

1) 我可以将一个 table 用作 'Employee' 并将其用作 2 个实例,例如 Recipient 和 Submitter 吗?

2) 我可以使用 'Employee' table 然后自我引用它以避免任何冗余吗?我正在考虑如何在限制条件下做到这一点,例如员工无法通过应用条件提交自己的评论,因为员工 ID 不应等于 submitting/requesting 反馈。

不确定你在哪里看到冗余,但像这样的东西应该有用。


1) 您可以与两个由员工担任的角色建立关系。但是,不要将 rows/tables 与 entities/entity 类型混淆。

2) 我假设员工可以不止一次提交反馈,也可以不止一次收到反馈。如果是这样,则您有一个多对多关系,不能通过引入冗余将其非规范化为 Employee table 。带有检查约束的单独 table 以防止提交者与接收者相等听起来很合适。