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

问题描述 投票:20回答:2

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

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

sql database orm doctrine
2个回答
44
投票

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

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

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

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

多对多单向:公交车和公交车,其中公交车有Riders的集合属性,但Rider没有集合属性列出所有公交车骑手已经乘坐(应用程序不关心)。

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


2
投票

Example:

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

多对多双向

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

  • Student导航到Subject

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

  • Subject导航到Student

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

多对多单向

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

  • Student导航到Subject

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

© www.soinside.com 2019 - 2024. All rights reserved.