有一个可以与公司或会计师相关的表格日历。日历中的一行排他地(XOR)属于会计师或公司。

我在日历(快照2)上创建了一个复合PK来引用其中一个表,但不能同时引用两个表。 (一个日历条目专门属于会计师或公司):

快照1:



快照2:



我的问题是,如何正确执行此操作,以便保持参照完整性?

calendar --> accountants
calendar --> companies

最佳答案

据我所知,MySQL中没有约束条件可以强制要求仅引用公司xor会计师。

但是,您可以使用BEFORE INSERT和BEFORE UPDATE触发器来拦截可能违反约束的值并进行修改。也许将两个引用都设置为null,优先于另一个,设置一些“需要注意,输入错误”字段,等等。

关于mysql - 3个表的复合主键XOR引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31442030/

10-11 23:12
查看更多