我无法完全掌握差异.你能描述这两个概念并使用现实世界的例子吗?
database database-design data-modeling identifying-relationship
所以,我一直在阅读我的数据库设计中的识别与非识别关系,并且关于SO的一些答案似乎与我相矛盾.以下是我要看的两个问题:
从每个问题的最佳答案看,我似乎对识别关系有两种不同的看法.
第一个问题的响应表明,标识关系"描述了子表中行的存在取决于父表中的行的情况." 给出的一个例子是,"作者可以写很多书(1对n的关系),但没有作者就不能存在书." 这对我来说很有意义.
然而,当我阅读对问题二的回答时,我感到困惑,因为它说,"如果一个孩子识别其父母,那就是一种识别关系." 然后答案继续给出一些例子,例如社会安全号码(识别一个人),但地址不是(因为许多人可以住在一个地址).对我来说,这听起来更像是主键和非主键之间的决定.
我自己的直觉(以及对其他网站的额外研究)指出了第一个问题,其反应是正确的.但是,在我继续前进之前,我想验证,因为我不想学习错误,因为我正在努力理解数据库设计.提前致谢.
database database-design relational-database identifying-relationship
虚线表示关系强,而实线表示关系弱.在下图中,我们如何确定实体Room与Class实体之间的关系是强大的.是因为Room实体有一个常规密钥(非复合)?
我只能找到以下两个不同之处:
当我们有ER图时,为什么我们使用关系模型?
database entity-relationship relational junction-table entity-relationship-model
所以,我在stackoverflow上已经阅读了很多答案,但我仍然对它的整个概念感到困惑.具体来说,我已经阅读了这篇文章(包括它引用的所有文章),但似乎无法找到对概念的可靠掌握(或者也许是我的基数(n:m等)和身份之间的混淆):
我的问题是:我知道识别关系意味着子实体的主键必须包含其外键,而非识别关系则相反(这是正确的吗?).现在,这对我来说似乎有点太"前瞻性思考"了?在其中一个链接的评论中也有同样的说法.我怎样才能"退后一步"并实际看到哪些关系具有哪些特征?
例如,我有两个困境:
job_title(父母,1)到employee(孩子,1 ..*).我是否正确地认为,因为job_title是一个查找表,它必须是一个非识别关系?或者更准确地说"没有工作标题,员工就不能存在,因此必须确定"?或者是定义该场景的关系?employeeto employee_equipment(桥接m:n基数之间的实体)到equipment.现在,我读到这必须是employee_equipment双方的识别关系.但是,如果员工不需要设备怎么办?可以有一个可选的识别关系吗?我想我正在寻找一种方法来识别哪些身份表应该属于哪个,而不考虑主键/外键,或者任何真正技术性的东西.
任何帮助将非常感激!
mysql database database-design entity-relationship cardinality