Реализация универсальных моделей данных объектно-ориентированным способом?
У меня есть UDM (универсальная модель данных), взятая из книги Лена Сильвестона, которую я хотел бы реализовать как объектно-ориентированный дизайн в C Sharp для моделирования ЧАСТЕЙ, ЛИЦ и ОРГАНИЗАЦИЙ.
Хотя переход от логической модели SUPERTYPES и SUBTYPES легко осуществляется через иерархию классов, я не уверен, как обращаться с отношениями. Отношение "многие ко многим" в мире реляционного мира (физической базы данных) обычно реализуется в отдельной таблице ассоциаций. У меня есть чувство, что я следую этой парадигме, и реализация отношений ММ как отдельного класса "ассоциации" в объектно-ориентированном мире может оказаться не лучшим способом… Либо это?
Кроме того, кто-нибудь знает, были ли написаны какие-либо статьи о реализации этих UDM объектно-ориентированным способом?
Спасибо за любые указатели.
1 ответ
У меня есть чувство, что я следую этой парадигме, и реализация отношений ММ как отдельного "ассоциативного" класса в объектно-ориентированном мире может оказаться не лучшим способом.
Ваше чувство верно, в объектно-ориентированном мире вам не нужно иметь отдельный класс ассоциаций, чтобы моделировать отношения многих ко многим. Наиболее распространенным способом реализации этого является использование коллекций на каждой стороне ассоциации, что приводит к ассоциации "многие ко многим". Взгляните на следующий пример C# отношения многие ко многим:
class A {
List<B> bs;
}
class B {
List<A> as;
}