我有一个表(a),它应该有一列“user_id”,它是其他表(b)或(c)的外键。 那么它是否指向表b或c(只有一个,而不是两者)。
这在 MySQL 中可能吗?我能想到的最好的事情是以下(但正如你所看到的,我的“a”表中有两次“user_id”,这不是很好,因为这两个值之一将始终为空。
非常感谢!
最佳答案
您好,这称为多态关联,您无法使用 MySql 外键约束来强制执行它。
为了使 userId_a 为空或 user_id_b 为空,您可以创建一个检查约束
CONSTRAINT CHECK (user_id_a IS NOT NULL OR user_id_b IS NOT NULL)
关于MySQL:是否可以为两个不同的表列创建外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39022046/