Реализация универсальных моделей данных объектно-ориентированным способом?

У меня есть UDM (универсальная модель данных), взятая из книги Лена Сильвестона, которую я хотел бы реализовать как объектно-ориентированный дизайн в C Sharp для моделирования ЧАСТЕЙ, ЛИЦ и ОРГАНИЗАЦИЙ.

Хотя переход от логической модели SUPERTYPES и SUBTYPES легко осуществляется через иерархию классов, я не уверен, как обращаться с отношениями. Отношение "многие ко многим" в мире реляционного мира (физической базы данных) обычно реализуется в отдельной таблице ассоциаций. У меня есть чувство, что я следую этой парадигме, и реализация отношений ММ как отдельного класса "ассоциации" в объектно-ориентированном мире может оказаться не лучшим способом… Либо это?

Кроме того, кто-нибудь знает, были ли написаны какие-либо статьи о реализации этих UDM объектно-ориентированным способом?

Спасибо за любые указатели.

1 ответ

У меня есть чувство, что я следую этой парадигме, и реализация отношений ММ как отдельного "ассоциативного" класса в объектно-ориентированном мире может оказаться не лучшим способом.

Ваше чувство верно, в объектно-ориентированном мире вам не нужно иметь отдельный класс ассоциаций, чтобы моделировать отношения многих ко многим. Наиболее распространенным способом реализации этого является использование коллекций на каждой стороне ассоциации, что приводит к ассоциации "многие ко многим". Взгляните на следующий пример C# отношения многие ко многим:

class A {
    List<B> bs;
}

class B {
    List<A> as;
}
Другие вопросы по тегам