Разница между однонаправленными и двунаправленными реляционными отношениями - PullRequest
20 голосов
/ 20 апреля 2010

Интересно, что означают эти два слова.

Я столкнулся с ними в Документация доктрины , но я не могу понять, что они означают.

Ответы [ 2 ]

44 голосов
/ 20 апреля 2010

Это связано с тем, будет ли обычное использование (в домене приложения) пытаться получить доступ к обеим сторонам отношений с другой стороны ... Счета-фактуры на продукты, вероятно, будут однонаправленными, поскольку мы часто хотим знать, какие продукты указаны в счете, маловероятно, что вы захотите узнать все счета, содержащие данный продукт.

Магазины для товаров, с другой стороны, являются двунаправленными, так как мы можем легко получить доступ ко всем товарам в определенном магазине или найти все магазины, которые продают определенный товар.

Двунаправленный не ограничен тем, где отношения являются отношениями «многие ко многим». Отношения сотрудника с руководителем могут легко быть двунаправленными, если в нашей доменной модели объект сотрудника должен иметь возможность доступа к объекту руководителя сотрудника, и, конечно, объект руководителя содержит свойство, которое перечисляет всех его назначенных сотрудников. ,

Двунаправленная связь один ко многим: Штат и город, где штат имеет коллекционную собственность городов, а город - государственную собственность

Много ко многим Однонаправлено: Bus и Rider, где Bus имеет свойство коллекции Riders, но Rider не имеет свойства коллекции, в котором перечислены все автобусы, на которых ездил Rider (приложение не заботится).

Двунаправленный от многих ко многим: Класс Person, где у каждого человека есть Свойство Friends, поскольку Коллекция объектов другого человека, с которыми этот человек дружит;
или ...
Классы Artist и Album, где Artist имеет коллекцию Albums, а Album имеет Artists Collection (где альбом представляет собой подборку треков из нескольких исполнителей)

2 голосов
/ 24 марта 2016

Пример:

У нас есть две таблицы в базе данных: Student Таблица, Subject Таблица

Двунаправленный канал «многие ко многим»

Вам необходимо применить навигацию в базе данных из следующих двух направлений:

  • Навигация от Student до Subject

Студент может записаться на многие предметы в семестре.

  • Навигация от Subject до Student

У субъекта может быть много разных студентов.

однонаправленный "многие ко многим"

Вам необходимо применить навигацию в базе данных с направления one:

  • Навигация от Student до Subject

Студент может записаться на многие предметы в семестре.

...