目前,我有两个配置表
,它们存储两种不同类型的配置,但是,两者都有一个ID
列。我有一张名为 Deactivation
的表。我想要停用的任何配置都可以将该配置表的 ID
添加到该表中。
数据库结构如下。
我的问题是我可以创建两个引用的 FK 约束吗,
- ID (FK) to T1_ID (PK)
- ID (FK) to T2_ID (PK)
(单子(monad)女到多 parent )
因此,deactivation
表不允许插入任何不在 T1
或 T2
中的 id
>。但是如果在任何该表中找到ID
,则应该完成插入。
谢谢
最佳答案
我认为您已经从评论中得到了答案,但这里作为直接声明:
关系数据库外键/主键机制并不是为了维护和强制表之间的这种关系。您必须使用停用触发器进行自定义操作,检查插入停用的值是否存在于 T1 或 T2 中,如果存在则允许插入/如果不存在则拒绝插入。
您还必须考虑在 T1 和 T2 中编写一些内容来处理更新/删除(级联它们?)和冲突(如果 T1 id = 1
和 T2 id = 2
,但随后将 T2 ID 也更改为 1?如果将 T1 中代表一个事物的 ID 插入到代表另一事物的 T2 中会怎样?T2 中的新事物会自动停用吗?我的手机停止工作是因为有人停止在平板电脑上支付契约(Contract)费用?)
关于mysql - 我可以创建从单个 FK 到多个 PK 的外键约束吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53703245/