Re: Отношение многие ко многим в ООП
От: Alexey Rovdo Россия http://ru.linkedin.com/in/rovdo
Дата: 25.03.05 15:07
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>В реляционном программировании существует отношение "многие ко многим" и стандартный способ его реализации — таблица с колонками, идентифицирующими сущности, между которыми такое отношение устанавливается:


А>
А>Entity1
А>(
А>  id,
А>  ...
А>)

А>Entity2
А>(
А>  id,
А>  ...
А>)

А>Entity1_2_Entity2
А>(
А>  entity1_id,
А>  entity2_id
А>)
А>

А>Хотелось бы узнать, какие подходы к реализации таких отнощений существуют в ООП, в чём их недостатки и преимущества. Заранее спасибо.


В ООП можно реализовать целый букет подходов к представлению такого отношения.

Во-первых можно определить класс-отношение c атрибутом-коллекцией ссылок на объекты, связанные отношением.
Во-вторых можно в состав самих объектов-участников ввести ссылки (коллекции ссылок) на объекты-отношения.
В-третьих можно полностью сдублировать представленную выше реляционную структуру, определив класс Entity1_2_Entity2 с атрибутами ссылками ent1, ent2 (очень плохой вариант, поскольку в этом случае для получения информации о любом отношении прийдется перебирать все элементы класса)
В-четвертых, можно рассматривать отношение многие-ко-многим как объект-коллекцию отношений 1-1.

В конечном счете все определяется потребностями и логикой конкретного приложения.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.