Недавно я немного прочитал о моделировании данных и у меня возник вопрос о ролях, которые может играть сущность.
Рассмотрим простой случай, когда у вас есть Компания, и Компания может быть Поставщиком, Клиентом, Дистрибьютором и т. Д. Или комбинацией этих ролей. Таким образом, компания X может быть как Поставщиком, так и Заказчиком.
На уровне данных у вас может быть таблица для CompanyS, а затем таблицы для SupplierS, CustomerS и т. Д., Которые ссылаются на таблицу Company. По крайней мере, я думаю, что так можно представить.
Хорошо, значит, где-то на земле приложений у вас есть классы для CustomerS и SupplierS и так далее. Каждый из них будет состоять из компании, и тогда все, что будет особенного в этом конкретном классе.
Это все нормально и имеет смысл для меня, пока мы работаем только с одним классом сущностей одновременно. Что если мы хотим начать с компании и посмотреть, какую роль она играет? Поэтому в приложении я мог бы открыть Компанию и увидеть, что это Поставщик и Дистрибьютор.
Теперь я могу придумать несколько разных способов сделать это, но я чувствую, что, поскольку эта проблемная область настолько стара, что должны существовать некоторые проверенные и истинные шаблоны для моделирования этих концепций.
Таким образом, я ищу здесь общие стратегии или шаблоны для моделирования ролей сущностей на уровне приложений. Будем весьма благодарны за конкретные справочные материалы по этой конкретной теме (будь то блоги, книги или что-то в этом роде).