首页 >数据库 >mysql教程 >单个外键可以引用不同表中的多个主键吗?

单个外键可以引用不同表中的多个主键吗?

Patricia Arquette
Patricia Arquette原创
2025-01-11 09:15:43633浏览

Can a Single Foreign Key Reference Multiple Primary Keys in Different Tables?

外键是否可以跨表引用多个主键?

一个常见的数据库设计问题涉及使用单个外键列引用多个表中的主键。 我们举个例子来说明一下:

数据库:员工信息

表格:

  • employees_ce(主键:empid
  • employees_sn(主键:empid
  • deductions(外键:id

id 表中的 deductions 外键能否同时引用 empidemployees_ce 中的 employees_sn 主键?

解决方案:

虽然将单个外键链接到不同表中的多个主键似乎很直观,但标准数据库设计不允许这样做。最佳实践是引入一个链接表来连接相关实体。

改进的数据库结构:

  • employees(主键:id
  • employees_ce(外键:id
  • employees_sn(外键:id
  • deductions(外键:employee_id

此修订后的结构使用带有主键 (employees) 的单个 id 表来表示所有员工,无论其类型如何。 employees_ceemployees_sn 现在使用引用 id 中的 employees 列的外键,将它们链接到各自的员工类别。 deductions 表的外键 employee_id 指向 employees 表中的主键。这种方法可确保数据完整性并简化表之间的查询和连接。

以上是单个外键可以引用不同表中的多个主键吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn