相关疑难解决方法(0)

为什么识别关系中的主键的外键部分?

我试图理解一个概念,而不是修复一段不起作用的代码.

我将采用表单(父表)和表单字段(子表)的一般示例.从逻辑上讲,这将是一种识别关系,因为没有表单就不能存在表单字段.

form和form_field表

这将使我认为,为了将逻辑关系转换为技术关系,NOT NULLform_field表中的form_id字段的简单就足够了.(参见上面屏幕截图的左侧部分.)

但是,当我使用MySQL Workbench添加标识关系时,form_id不仅NOT NULL是主键的一部分,而且也是主键的一部分.(请参阅上面屏幕截图的右侧部分.)当我添加一个非识别关系时,NOT NULL仍然按逻辑方式应用它实际上也是一个识别关系.

我想这让我感到困惑,以及直到现在我总是简单地使用id字段作为主键的事实.

所以我理解识别与非识别关系的逻辑概念,但我不理解技术部分.

为什么它,正如这个答案所说的那样,"正确"的方式使外键成为孩子主键的一部分?

这些复合主键有什么好处?

sql database-design foreign-keys primary-key

16
推荐指数
1
解决办法
5656
查看次数

9
推荐指数
2
解决办法
2万
查看次数