单向和双向关系关系的区别

时间:2010-04-20 01:56:25

标签: sql database orm doctrine

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

我在Doctrine's documentation遇到过他们,但我无法理解他们的意思。

2 个答案:

答案 0 :(得分:44)

这与通用(在应用程序域内)是否会试图从另一方访问关系的两个方面有关...产品的发票可能是单向的,因为我们经常想知道什么产品在发票上,您不太可能想知道包含给定产品的所有发票。

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

双向不限于关系是多对多关系的地方。如果在我们的域模型中,员工对象需要能够访问员工的主管对象,那么员工与主管之间的关系可以轻松实现双向,当然,主管对象包含列出其所有指定员工的属性。

一对多双向:      州和城市,国家有城市的收集财产,城市有国家财产

多对多单向:      巴士和骑手,巴士有Riders的收集属性,但Rider没有收集属性列出所有Bus Rider已经乘坐(应用程序不关心)。

多对多双向:      人类,每个人都有朋友财产,作为此人与朋友同在的其他人物的集合;
或...
艺术家和专辑课程,其中艺术家有专辑集合,专辑有艺术家集合(专辑是多个艺术家的曲目汇编)

答案 1 :(得分:2)

实施例

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

多对多双向

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

  • Student导航到Subject

学生可以在本学期注册许多科目。

  • Subject导航到Student

主题可以有许多不同的学生注册。

多对多单向

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

  • Student导航到Subject

学生可以在本学期注册许多科目。