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

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

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

21
задан nbro 20 February 2017 в 21:29
поделиться

1 ответ

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

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

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

Один ко многим, двунаправленный: Штат и город, где штат имеет коллекционное свойство городов, а город - свойство государства

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

Многие ко многим, двунаправленный: Класс Person, где у каждого человека есть свойство Friends, как коллекция других объектов, с которыми этот человек дружит;
или ...
Классы исполнителя и альбома, где у исполнителя есть коллекция альбомов, а у альбома есть коллекция исполнителей (где альбом представляет собой сборник треков от нескольких исполнителей)

46
ответ дан 29 November 2019 в 20:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: