0
我有一个表(a)应该有一个列“user_id”,这是其他表(b)或(c)的外键。 因此,它指向表b或c(只有一个,而不是两个)。MySQL:是否可以为两个不同的表格列创建外键?
这甚至可能在MySQL?我能拿出最好的事情是以下(但你可以看到,我有“user_ID的”在我的“一” - 表两次,这是不是很好,因为这两个值中的一个将永远是空的。
非常感谢你!
我有一个表(a)应该有一个列“user_id”,这是其他表(b)或(c)的外键。 因此,它指向表b或c(只有一个,而不是两个)。MySQL:是否可以为两个不同的表格列创建外键?
这甚至可能在MySQL?我能拿出最好的事情是以下(但你可以看到,我有“user_ID的”在我的“一” - 表两次,这是不是很好,因为这两个值中的一个将永远是空的。
非常感谢你!
嗨这就是所谓的多态关联和使用MySQL外键约束你不能强制执行。
为了要么userId_a null或user_id_b空,你可以创建一个检查约束条件
CONSTRAINT CHECK (user_id_a IS NOT NULL OR user_id_b IS NOT NULL)
为什么不呢?只要你使用不同的钥匙,你可以 – Mojtaba
谢谢你的回复。请看上面的附图。问题:是否可以将“user_id_a”和“user_id_b”合并到表“tbl_a”的一个列/字段中? – Tream
没有。这是针对ACID的。实际上,你必须保持你想要'xor'运算符b或c但不能同时运行的方式 – Mojtaba