AR>В ООП можно реализовать целый букет подходов к представлению такого отношения.
AR>Во-первых можно определить класс-отношение c атрибутом-коллекцией ссылок на объекты, связанные отношением.
Это, как я понимаю,
class Relation
{
Collection Entities1;
Collection Entities2;
}
и потом, для проверки наличия отношения между e1 и e2 надо убедиться в наличии обоих в соотв. коллекции, так?
AR>Во-вторых можно в состав самих объектов-участников ввести ссылки (коллекции ссылок) на объекты-отношения.
class Entity1
{
Collection Entities2;
}
AR>В-третьих можно полностью сдублировать представленную выше реляционную структуру, определив класс Entity1_2_Entity2 с атрибутами ссылками ent1, ent2 (очень плохой вариант, поскольку в этом случае для получения информации о любом отношении прийдется перебирать все элементы класса)
Ага, именно это я делать очень не хотел, потому и возник вопрос.
AR>В-четвертых, можно рассматривать отношение многие-ко-многим как объект-коллекцию отношений 1-1.
class one2one
{
Entity1 e1;
Entity2 e2;
}
class Relation
{
Collection one2onecollection;
}
так чтоли? а чем это принципиально от предыдущего способа отличается? Или я чего то не понимаю?
AR>В конечном счете все определяется потребностями и логикой конкретного приложения.
Тут вся штука в том, что некоторые из этих отношений у меня имеют дополнительные параметры, описывающие эти отношения или поведение объектов, в них учавствующих. Тоесть, в структуре бд эти отношения являются таки объектами. Некрасивый вариант выглядит подходящим. Никак не могу выбрать законченное решение... Надеюсь, конструктивный диалог с коллегами поможет...