Связь агрегации между клиентом и человеком / организацией
-
27-09-2019 - |
Вопрос
у меня есть Клиент объект, который будет иметь либо Человек объект или Организация объект в нем. Эти Человек объекты или Организация объекты могут иметь отношения к другим объектам, независимым от Клиент объект. В этом случае я должен использовать общую ассоциацию агрегации между Client -> Person
а также Client -> Organization
где Клиент объект в целом.
Также обратите внимание на эти сценарии:
- Человек может быть нормальным Человек в некоторых сценариях, как; Человек производит оплату от имени Клиент(*Организация*)
- Человек может быть А. Клиент который купил А. Товар от нас.
- Человек может быть А. Поставщик
Решение
Пока вы действительно не предоставили достаточно информации, звучит так, как вы описываете типичный Модель ролей класса.
Я подозреваю, что ваш клиент на самом деле не имеют человек или организация, а скорее человек или организация является Клиент или IOW, либо человек, либо организация, могут играть роль клиента в определенных отношениях.
Существуют различные способы моделирования этого и без одного правильного решения. Вы можете найти это статья полезный
Другие советы
Не забудьте ограничение XOR между обеих ассоциаций (поскольку клиент не может быть подключен как к человеку, так и к организации)