设置外键约束的通常方法是选择外键将指向哪个表。
我在1个表和一组表之间有一个多态关系。
这意味着该表将与集合中的那些表之一相关。
例如。
images: person_id, person_type subordinates: id, col1, col2...col9 products: id, colA, colB...colZ
在上面的示例中,如果person_type为“ subordinates”,则person_id应该是subordinates.id的外键,产品也应如此。
因此,我想知道,是否可以对多个表之一使用外键,或者在分配一个表时必须专门设置它指向的表?
这个问题是针对MySQL和PostgreSQL的。
谢谢
不,外键约束始终精确地引用一个父表。
这个问题经常出现。这是我过去的一些答案:
有关多态关联的更多信息,请参见我的演讲《SQL中的实用面向对象模型》或《SQL反模式:避免数据库编程的陷阱》一书。