多态关联(单个外键可以指向多个表)由于其外键约束的严格性质,在 MySQL 中提出了挑战。 标准外键需要固定的目标表,使得条件引用不可能。
解决方案在于“超表”策略。中央表,我们称之为Commentable
,充当中介。 该表包含唯一标识符(伪键),并充当所有其他需要多态关联的表的公共参考点。
这种方法反映了面向对象的设计原则。实际上,像 BlogPosts
和 UserPictures
这样的表通过此共享标识符从 Commentable
超表继承。此共享 id
维护不同内容类型之间的数据完整性。
至关重要的是,在将记录添加到子类型表(例如 BlogPosts
)之前,必须首先在 Commentable
表中创建相应的条目以生成伪键。 这确保了关系得到正确管理,模仿传统外键系统的行为,同时适应多态关联的复杂性。
以上是如何在没有条件外键约束的情况下在 MySQL 中实现多态关联?的详细内容。更多信息请关注PHP中文网其他相关文章!