Relação de agregação entre cliente e pessoa/organização
-
27-09-2019 - |
Pergunta
eu tenho um Cliente objeto que terá um Pessoa objeto ou Organização objeto nele. Esses Pessoa objetos ou Organização objetos podem ter relações com outros objetos independentes do Cliente objeto. Nesse caso, devo usar uma associação geral de agregação entre Client -> Person
e Client -> Organization
onde o Cliente objeto é o todo.
Observe também estes cenários:
- Pessoa pode ser um normal Pessoa em alguns cenários como; Pessoa faz pagamento em nome de Cliente(*Organização*)
- Pessoa pode ser um Cliente que comprou um produtos de nós.
- Pessoa pode ser um Fornecedor
Solução
Enquanto você realmente não forneceu informações suficientes, parece que você está descrevendo um típico Modelo de classe de função.
Eu suspeito que seu cliente realmente não tenho uma pessoa ou uma organização, mas sim essa pessoa ou uma organização é Um cliente, ou IOW, uma pessoa ou uma organização pode desempenhar um papel de cliente em um determinado relacionamento.
Existem várias maneiras de modelar isso, e nenhuma solução correta. Você pode encontrar isso artigo útil
Outras dicas
Não se esqueça de uma restrição XOR entre as duas associações (já que um cliente não pode ser conectado a uma pessoa e uma organização)