跨表外键引用
本文探讨在一个表中创建外键以引用多个其他表的主键的可能性。具体来说,它围绕提问者提出的场景展开。
场景解读
提问者有两个表,employees_ce
和 employees_sn
,每个表都有自己的主键列。他们还有一个名为 deductions
的第三个表,需要一个外键来引用 employees_ce
和 employees_sn
的主键。提供的示例进一步说明了这种情况:
<code>employees_ce -------------- empid name khce1 prince employees_sn ---------------- empid name khsn1 princess</code>
<code>deductions -------------- id name khce1 gold khsn1 silver</code>
解决方案
虽然提问者的目标在技术上是可以实现的,但这并非数据库设计的最佳实践。推荐的方法是定义一个中间表来链接这两个表,例如:
<code>employees ---------------- empid name employees_types --------------- empid type khce1 ce khsn1 sn</code>
通过这种设置,deductions
表可以有一个外键引用 employees
表中的 empid
列,从而在三个表之间建立简单的关系。
<code>deductions -------------- id name khce1 gold khsn1 silver</code>
中间表方法的优势
中间表方法提供以下几个优点:
deductions
表。以上是外键可以引用不同表中的多个主键吗?最好的选择是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!