为什么当我确定他们指的是多对一时,很多人都指的是一对一?
例如,如果你有两个表;
Inventory (InventoryID)
Item (ItemID, InventoryFK)
据我所知,这里没有一对一的映射。这是“一个库存的许多项目”。
现在,我们假设每个广告资源只有一个项。在这种情况下,我的同事们会开始称之为“一对一”。我指出它是仍然多对一的关系吗?当我试图向他们解释时,他们似乎并不理解。
我认为正确的一对一映射是这样的:
Person (Column: PersonID, Name)
PersonAddress (Column: PersonID, StreetName, StreetNumber)
这里你有两张桌子,分享完全相同的PK。
假设我的假设是正确的,为什么有这么多人滥用“一对一”一词呢?
答案 0 :(得分:4)
一对多和一对一的关系以稍微不同的方式实现。
1对许多
Object(objectId)ObjectCharacteristics(charId,objectId)
1对一个
表的顺序并不重要:
丈夫(丈夫)妻子(wifeId,丈夫)+对丈夫的独特约束N.B。一对多关系也是订单方式中的一对一关系。 ObjectCharacteristics只有一个对象。
但你是对的,这种关系是一个概念,它不依赖于数据库中的特定数据,而只依赖于它的结构。
答案 1 :(得分:1)
我同意这些术语被滥用。但我们谁不是有罪?在不知道所涉及的约束的情况下,您认为是一对一关系的示例可能是一对一或零关系(提示:外键的存在并不意味着实际存在引用值)。
Chris Date在他的论文All for One, One for All中对这种情况进行了非常彻底的分析。