【问题标题】:Difference between unidirectional and bidirectional relational relationship单向和双向关系关系的区别
【发布时间】:2011-02-09 22:52:14
【问题描述】:

我想知道这两个词是什么意思。

我在Doctrine's documentation遇到过他们,但我不明白他们的意思。

【问题讨论】:

    标签: sql database orm doctrine


    【解决方案1】:

    示例:

    我们在数据库中有两个表:Student 表,Subject

    多对多双向

    您需要从以下两个方向应用数据库中的导航:

    • Student 导航到Subject

    一个学生可以在一个学期报读许多科目。

    • Subject 导航到Student

    一个学科可以有许多不同的学生注册。

    多对多单向

    您需要从one 方向应用数据库中的导航:

    • Student 导航到Subject

    一个学生可以在一个学期报读许多科目。

    【讨论】:

      【解决方案2】:

      这与常用用法(在应用程序域内)是否会尝试从另一方访问关系的双方...产品发票可能是单向的,就好像我们经常想知道什么产品一样在发票上,您不太可能想知道包含给定产品的所有发票。

      另一方面,商店到产品是双向的,因为我们可以很容易地访问特定商店的所有产品,或者找到销售特定产品的所有商店。

      双向不限于关系是多对多关系的情况。员工与主管的关系很容易是双向的,如果在我们的领域模型中,员工对象需要能够访问员工的主管对象,当然,主管对象包含一个列出所有分配给他的员工的属性.

      一对多双向: State 和 City,其中 State 拥有 Cities 的 collection 财产,City 拥有 State 财产

      多对多单向: Bus and Rider,其中 Bus 拥有 Rider 的集合属性,但 Rider 没有列出所有 Bus Rider 乘坐过的 Buses 的集合属性(应用程序不关心)。

      多对多双向: Person 类,其中每个人都有 Friends 属性,作为此人的好友的其他人对象的集合;
      或者...
      Artist 和 Album 类,Artist 拥有 Albums 收藏,Album 拥有 Artists Collection(专辑是来自多位艺术家的曲目的汇编)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-12-05
        • 2014-07-23
        • 2012-08-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多