Kdg*_*Dev 23 mysql identification identifying-relationship
我读过这个问题:识别和非识别关系之间有什么区别?
但我还是不太确定......我拥有的是三张桌子.
用户可以拥有许多对象,也可以为每个对象发布许多图片.我的直觉告诉我这是一个识别关系,因为我需要在对象表中的userID,我需要在图片表中的objectID ...
还是我错了?另一个主题的解释仅限于数据库在已经编码后解释它的方式的理论解释,而不是对象在现实生活中如何连接.在考虑如何构建数据库时,我对如何做出识别与非识别的决定感到困惑.
Nic*_*ole 54
两者听起来都像是在与我建立关系.如果您听说过的条款一到一对一或一对多,和许多一对多,一对一关系的确定关系,并多到许多关系都是非识别关系.
如果孩子识别其父母,那么这是一种识别关系.在您提供的链接中,如果您有电话号码,您就知道它属于谁(它只属于一个).
如果孩子没有识别其父母,那么这是一种非识别关系.在链接中,它提到了国家.将状态视为表示情绪的表中的行."快乐"并不是一个特定的人,而是很多人.
编辑:其他现实生活中的例子:
小智 9
我认为更简单的可视化方法是问自己,如果没有父母,子记录是否可以存在.例如,订单行项目需要存在订单标题.因此,订单行项目必须具有订单标题标识符作为其密钥的一部分,因此,这是标识关系的示例.
另一方面,虽然一个人可能有多个电话号码,但电话号码可以在没有人的所有权的情况下存在.在这种情况下,拥有电话号码的人是非密钥或非识别关系,因为电话号码可以存在而与所有者不同(因此,电话号码所有者人可以为空,而在订单行项目示例中,订单头标识符不能为空.
NickC Said:一对一关系是识别关系,多对多关系是非识别关系
这个解释对我来说似乎完全错了.你可以有:
想象一下,你有如下表:customer
,products
和feedback
.所有这些都基于桌面上customer_id
存在的内容cutomer
.因此,根据NickC定义,不应存在任何类型的多对多识别关系,但在我的示例中,您可以清楚地看到:只有当相关产品存在且已被客户购买时,才能存在反馈,因此客户,产品和反馈应该是识别.
您可以查看MySQL手册,解释如何在MySQL Workbench上添加外键.
归档时间: |
|
查看次数: |
26916 次 |
最近记录: |