标签: mysql erd
我和同事争论子表是否可以使用其父表的主键。这考虑了1比1的关系。
例如:
答案 0 :(得分:2)
从学术角度来看,主键必须符合所有这些要点:
外键是对其他表的主键的引用。因此,它们必须包含引用的PK具有的字段。这并不违反正常化,因为PK必须是最小的(从学术角度来看)。
如果您拥有一个包含2个或更多列的主键,并且您认为仅使用一列引用其行就足够了,那么您的PK无效,因为它不是最小的。当它有效并且您需要所有这些列以满足唯一性时,您还需要外键中的所有这些列。
DBMS允许您定义非最小PK,但那就是您离开学术概念的那一点。