因此,我一直在阅读有关在数据库设计中识别和识别关系的问题和答案。
据我所知,如果在没有父行的情况下无法识别子行逻辑,那么它就是一种识别关系。
我已经考虑了一段时间了。从现实生活的逻辑角度来看,它非常有意义。但是,从数据库引擎的技术角度来看,我无法理解它的不同之处。
那么,如果我将子行定义为非null并为父行创建一个限制外键,而不是将父行的id识别为子行的主要部分的一部分,它会有什么区别?键?
答案 0 :(得分:1)
在关系/ SQL数据库中,它没有实际区别。 ER建模中存在识别/非识别概念,主要是作为解释业务领域的语义方面的一种方式,即关于优选识别方法和实体之间强制关系的业务规则。
在一些ER建模者中也存在一种做法,即只有在识别时需要引用属性(即"外键")时才显示它们(即"主键和# 34;属性)。当引用是"非标识"理论认为它们是由关系线的存在所暗示的,并且根本不需要在引用实体中显示。这些日子似乎很少见到这种惯例(至少在我的经验中),但它可以解释为什么识别关系的所谓重要性出现了。