Интересно, что означают эти два слова.
Я встретился с ними в документации Доктрины, но я не могу понять то, что они имеют в виду.
Это связано с тем, будет ли обычное использование (в домене приложения) пытаться получить доступ к обеим сторонам взаимосвязи с другой стороны ... Счета-фактуры на продукты, вероятно, будут однонаправленными, поскольку, хотя мы часто хотим знать, какие продукты есть в счете-фактуре, маловероятно, что вы захотите знать все счета-фактуры, содержащие данный продукт.
С другой стороны, «магазины к продуктам» являются двунаправленными, так как мы могли бы легко захотеть получить доступ как ко всем продуктам в определенном магазине, так и найти все магазины, которые продают конкретный продукт.
Двунаправленность не ограничивается отношениями «многие ко многим». Отношения между сотрудником и супервизором могут легко быть двунаправленными, если в нашей модели предметной области объекту сотрудника потребуется иметь доступ к объекту супервизора сотрудника, и, конечно же, объект супервизора содержит свойство, в котором перечислены все назначенные ему сотрудники. .
Один ко многим, двунаправленный: Штат и город, где штат имеет коллекционное свойство городов, а город - свойство государства
Многие ко многим однонаправленный: Bus and Rider, где Bus имеет свойство коллекции Riders, но Rider не имеет свойства коллекции, в которой перечислены все автобусы, на которых ездил Rider (приложение не заботится).
Многие ко многим, двунаправленный:
Класс Person, где у каждого человека есть свойство Friends, как коллекция других объектов, с которыми этот человек дружит;
или ...
Классы исполнителя и альбома, где у исполнителя есть коллекция альбомов, а у альбома есть коллекция исполнителей (где альбом представляет собой сборник треков от нескольких исполнителей)