【问题标题】:Are non-identifying OneToMany relationship automatically ManyToMany relationships?非识别 OneToMany 关系是否自动为 ManyToMany 关系?
【发布时间】:2015-05-01 12:58:36
【问题描述】:

我刚读到这个:What's the difference between identifying and non-identifying relationships?

那里的非识别关系示例听起来应该是多对多表。一个人可以有多个状态,一个状态可以被很多人使用。

我真的想不出一个非识别关系不应该是多对多关系的例子。

那么,有人可以详细说明一下吗?因为我想不出任何与此相反的例子。

编辑:

例如,一个识别关系是一棵有苹果的苹果树。那些苹果是因为苹果树而产生的。所以苹果树有很多苹果,但每个苹果只属于那一棵树。

一个不可识别的 OneToMany 关系必须有独立产生的东西,但只能属于另一个东西。因为如果它属于本身有多个实例的多个事物...

等一下,我刚刚意识到实例 A 只能有一个 B 的实例,但一个 B 可以链接到多个 A,而 B 是独立创建的。

我猜这个案子已经结案了。

【问题讨论】:

    标签: sql many-to-many one-to-many


    【解决方案1】:

    非标识 OneToMany 关系,是 OneToMany 关系。

    另一方面: 可识别的 OneToMany 关系可以反转为 OneToOne 关系。

    示例: 人 X 的电话号码是 123456。虽然在“电话”表中存在许多电话号码,但电话号码 123456 可能只出现一次。所以这个电话号码可以识别人 X。 虽然人 X 可以有多个电话,但“多”方几乎是一个唯一标识符,因此是一种“一对一”关系。

    非识别示例: X 人住在加拿大。如果你在加拿大搜索,你会发现很多人(可能)。但是,如果您还原此查询,即在 Canada 上的查找,则它不是多对多关系,而是单对多关系。

    【讨论】:

    • 我现在看到您关闭了自己的案例:D。
    • OneToOne 不是意味着双方只能拥有一个吗?
    • 是的。我的意思不是说它是真正的一对一关系,而是某种意义上的。可能您的电话号码仅供您自己使用,因此在表格中您的电话号码仅出现一次。这就是为什么我说“有点”一对一的关系。
    猜你喜欢
    • 1970-01-01
    • 2012-04-02
    • 2010-10-20
    • 1970-01-01
    • 2013-12-18
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    • 2020-11-03
    相关资源
    最近更新 更多