问题在于标题:
如何将多对多关系表作为实体?
答案 0 :(得分:5)
我想说,你的问题非常合理。看一下这个doc部分:Chapter 24. Best Practices。摘录:
不要使用异国情调的关联映射:
真正的多对多关联的实际测试用例很少见。最 当你需要存储在“链接”中的其他信息时 在这种情况下,使用两个一对多要好得多 与中间链接类的关联。事实上,大多数协会 是一对多和多对一的。出于这个原因,你应该继续 使用任何其他协会风格时要小心。
我们正在处理的方式是引入配对对象。因此,如果Employee
有很多Contacts
,我们可以EmployeeContact
。通过这种方式,我们可以获得很多收益,因为我们可以使用更多/新属性(IsMain,IsActive等)来丰富EmployeeContact。
在这种情况下,双方的映射是
one-to-many
(设置)员工联系 one-to-many
(设置) EmployeeContacts many-to-one
(关系)员工 many-to-one
(关系)联系 所以,最后,映射是常见的,但我们可以使用子查询等搜索Employee或Contact。
注意:在这种情况下,如果配对表有自己的代理键,例如EmployeeContactId。它可以随时添加..例如身份......