”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 外键可以引用多态关联中的多个表吗?

外键可以引用多态关联中的多个表吗?

发布于2024-11-16
浏览:243

Can a Foreign Key Reference Multiple Tables in Polymorphic Associations?

多态外键:一个外键可以引用多个表吗?

关系数据库中外键的概念通常涉及指定确切的目标参考列应指向的表。然而,在处理多态关联时,其中一个表与一组中的多个其他表有关系,就会出现问题:是否可以有一个可以引用这些表中任何一个表的外键?

答案:否

在MySQL和PostgreSQL中,外键约束只能引用单个父表。此约束通过在父表中保持引用行和被引用行之间的明确关系来确保数据完整性。

多态关联的替代方案

因为外键不能直接指向多个表,需要替代解决方案来建模多态关联:

  • Joined继承: 创建一个表,其中包含子表中的所有列和一个鉴别器列,以标识每行属于哪个表。
  • 每个类层次结构的表: 创建单独的表
  • 联合类型: 利用单个列来容纳来自的数据值不同的域,允许它引用多个子表。

其他资源

有关多态关联及其解决方案的进一步见解,请参阅以下资源:

  • SQL 中实用的面向对象模型
  • SQL 反模式,第 1 卷:避免数据库编程的陷阱
版本声明 本文转载于:1729692085如有侵犯,请联系[email protected]删除
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3