有两个表:雇员和雇员。由于每个雇员被分配给一个雇主,他们之间有1:N关系 - 简单的东西。 但我也希望能够模拟一个情况,即每个EMPLOYER都可以选择他的一个最喜欢的EMPLOYEE(他也可以选择没有)。
我应该这样:
1.在这些表之间添加第二个1:1关系 - 这样EMPLOYER也将包含EMPLOYEE_id_FK。 即使允许两张桌子之间有两种关系吗?
2.添加由两个主要唯一键 - EMPLOYER_ID和EMPLOYEE_ID标识的第三个表FAV?通过这种方式,我确信每个雇主只能拥有一个最喜欢的员工,而且每个员工都可以被一个员工选为最爱 - 这正是我想要的。
这样做的正确方法是什么?
答案 0 :(得分:1)
我的建议是有四张桌子。一张员工表,一张雇主表,一张表将雇员与雇主联系起来(表示一名雇员不能为两名雇主工作),最后是一张表,将雇主与他们最喜欢的雇员联系起来。
编辑:是的,当然两个表之间可以有两个关系。答案 1 :(得分:0)
您需要添加一个额外的表(即四个表而不是三个)或在employer2employee表中添加某种is_preferred
标志。)
答案 2 :(得分:0)
是的,这是允许的。你可以拥有任意数量的FK。
btw:这是一个1:N的关系,而不是1:1。当我建模时,它们都是N:M关系,因为一个员工可以拥有多个雇主。
答案 3 :(得分:0)