【发布时间】:2017-04-01 21:44:21
【问题描述】:
假设我在 mysql 中有两个表 1.孩子(姓名,父亲姓名) 2.父亲(姓名、联系方式)
Father 表有一个复合键 (name,contact)。Child 表中的Father_name 引用了father 中的名称。因此,外键引用了主键的一部分。这是 mysql 允许的。
但是考虑以下情况:
表父有以下元组:
(kishan,9906011111)
(kishan,9990601234)
现在假设我在 child 中插入一行
(xyz,kishan)
我怎么知道父亲表中的哪个 kishan 与孩子 xyz 相关?
如果 mysql 不允许外键引用主键的一部分,则可以避免这种情况。
请回答mysql允许这种方案有什么好处?
【问题讨论】:
-
因为 foreign 键可能映射到 list 值。