有一个表格日历,可以与公司或会计师相关。 日历中的一行专门属于(XOR)一位会计师OR属于一家公司。
我在日历(快照 2)上创建一个复合 PK 来引用任一表,但不能同时引用两个表。 (一个日历条目专有属于会计师或公司):
快照1:
快照2:
我的问题是,如何正确执行此操作以保持引用完整性?
calendar --> accountants
calendar --> companies
最佳答案
据我所知,MySQL 中没有可用的限制来强制只引用公司异或会计师。
但是,您可以使用 BEFORE INSERT 和 BEFORE UPDATE 触发器来拦截可能违反约束的值,并修改它们;也许将两个引用都设置为空,偏向其中一个,设置一些“需要注意,错误的输入”字段,等等......
关于mysql - 3张表的复合主键异或引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31442030/