[quote=andrielc][quote=sergiotaborda]
Pode ser que sim, mas aquilo não é descrição o bastante.( aliás, aquilo é o quê ? UML ? Modelo ER? Ou umas mistura ? se for UML as setas estão ao contrário)
Aquilo é o modelo comceptual ou fisico? Para mim seria no máximo conceptual.
Vc já tem a entidade pessoa. Vc não precisa de herança. Crie uma class TipoDePessoa e classifique a pessoa com o tipo. Pronto.
O ser administrador ou não é uma questão que precisa resolver com o conceito de Usuário e não como o de pessoa.
O seu objeto pessoa não deve características de usuário (username, password, etc…). É porque vc está pondo muita responsabilidade numa classe só que vc está com problemas.
Não use herança quando vc pode usar composição. E esqueça a questão das interfaces e das classes. Faça uma só entidade Pessoa com tipo e pronto.
Vai até facilitar na hora dos relatórios.
Faça bem simples.[/quote]
O que é aquilo? É um modelo conceitual de implementação, pra saber de onde partir, utilizei conceito de UML pra fazer ligações entre as classes.
Certo, entendi o seu ponto, porém, cada tipoPessoa tem métodos diferentes e se eu fizer a divisão de Usuário / Pessoa, no Banco de Dados não haverá uma ligação clara de qual usuário tem que nome, trabalha em tal projeto, a referência se perde.
[/quote]
Como assim ? Você faz o Usuário ter uma Pessoa ( ou a Pessoa ter um usuário). Nada se perde. Mas vc isola os conceitos. Vc poderá ter usuários que não são pessoas e vice-versa.
Isso é mais poderoso que o que tem agora, em que todas as pessoas são usuários. No outro modelo, isso é possível também, mas existem mais combinações possíveis e isso é bom.
Pelo contrário. A Pessoa do tipo projetista tem um usuário associado que administrador. Ele ela é ambas as coisas.
Claro. O usuário associado à pessoa pode ter quantos e quais papeis de segurança forem necessários, incluindo administrador.
É que vc precisa explicar - que ainda não explicou - se administrador é um conceito de sistema ou de negócio ( como se fosse um gerente). No primeiro caso o modelo que que lhes estou dando serve porque a responsabilidade como pessoa no mundo dos negócios e a responsabilidade no sistema está separadas e podem se relacionar ou não conforme necessário
Pessoas diferentes podem ser todas administrador. Basta que o usuários que lhes está associado o seja.
Acho que não é assim tão complicado.
O problema é que vc está tentando usar um modelo de herança onde ele não cabe. Eu sei que nas escolas por ai se ensina herança assim e parece que no mundo real vc vai modelar assim, mas não.
Vc pode até usar herança com hibernate e jpa para dizer que uma pessoa de um certo tipo tem mais campos que a pessoa padrão, mas não pode misturar com o conceito de usuário e administrador.