Caros amigos, este problema tem causado muita discurssão entre os desenvolvedores de um projeto, temos o seguinte problema:
O sistema tem uma entidade chamada Usuario (na minha opnião o nome não seria usuário, seria cliente), onde esse usuario é responsável por fazer configurações, temos outra entidade chamada Lojista, onde o lojista é responsável por anúncios demonstrado no diagrama Primeiro Design.
public class Usuario{
private int id;
private String cpf;
private String senha;
private Lojista lojista;
private Set<Configuracao> configuracoes;
}
public class Lojista{
private int id;
private Set<Anuncio> anuncios;
}
Sugeri um refactoring para o Segundo Design: o sistema tendo uma entidade chamada Pessoa onde possui dois relacionamentos, uma entidade Lojista que possui relacionamento com Anuncio e com uma classe chamada Cliente, onde o cliente tem relacionamento com Configuração.
public class Pessoa{
private int id;
private String cpf;
private String senha;
private Lojista lojista;
private Cliente cliente;
}
public class Lojista{
private int id;
private Set<Anuncio> anuncios;
}
public class Cliente{
private int id;
private Set<Configuracao> configuracoes;
}
Gostaria de saber a opnião sobre a forma mais flexível, mesmo que não seja nenhum dos dois.
Obrigado!