Подтвердить что ты не робот

Различие между однонаправленными и двунаправленными отношениями отношения

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

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

4b9b3361

Ответ 1

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

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

Bi-Directional не ограничивается тем, где отношение является отношением "многие ко многим". Отношение сотрудника к наблюдателю может быть легко двунаправленным, если в нашей модели домена объект сотрудника должен иметь доступ к объекту супервизора сотрудника, и, конечно, объект супервизора содержит свойство, в котором перечислены все его назначенные сотрудники,

От одного до многих двунаправленных:   Штат и город, где государство имеет коллекционное имущество городов, а город имеет государственную собственность.

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

Многие для многих двунаправленных:   Класс человека, в котором у каждого человека есть свойство "Друзья", в качестве коллекции других лиц, с которыми этот человек дружит.
или...
Артисты и альбомы, где у исполнителя есть коллекция альбомов, а в альбоме есть коллекция исполнителей (где альбом - это сборник треков из нескольких исполнителей).

Ответ 2

Пример:

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

Многостороннее двунаправленное

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

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

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

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

У субъекта может быть много разных учеников, обучающихся за него.

Много-много-однонаправленный

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

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

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