Dúvida na criação das classes em função do banco de dados

3 respostas
J

Olá !!!

Estou começando a programar em Java com banco de dados e surgiu
uma dúvida no relacionamento entre as tabelas do banco de dados e a criação das classes no sistema.

tabelas do banco de dados:

Categoria( id, nome, descricao)
  sub_categoria(id, categoria_id, nome, descricao)
  produto (id , subcategoria_id, nome, descricao)

classes:

class categoria{
     int id;
     string nome;
     string descricao;
}
class sub_categoria{
     int id;
     int categoria_id;
     string nome;
     string descricao;
}
class produto{
     int id;
     int subcategoria_id;
     string nome;
     string descricao;
}

Eu fiquei pensando e acho que não esta correto a forma como os campos das classes
foram criados no exemplo acima.

Assim estaria correto?

class categoria{
     int id;
     string nome;
     string descricao;
}
class sub_categoria{
     int id;
     categoria cat;      //<<-----Colocar um objeto ao invés do id
     string nome;
     string descricao;
}
class produto{
     int id;
     categoria cat;       //<<-----Colocar um objeto ao invés do id
     sub_categoria subcat;      //<<-----Colocar um objeto ao invés do id
     string nome;
     string descricao;
}

Obrigado pela ajuda

3 Respostas

R

Está legal…
O único porém é que dessa forma vc não mantém a consistência lógica do modelo(ex: pode criar um Produto com categoria e subcategoria não relacionadas)

F

Na minha humilde opinião a segunda forma que você apresentou é mais adequada. Principalmente se você for usar JPA, hibernate,…
E em termos de orientação a objetos a sua segunda solução é muito superior à primeira.

Fique atento aos padrões de nomenclaturas. Isso faz diferença quando outra pessoa pega seu código para ler.
Inicie o nome das classes com a primeira letra em maiúsculo.

http://www.oracle.com/technetwork/java/codeconvtoc-136057.html

J

Olá !!


fvslistas, Fiz a correção da nomenclatura.
raf4ever, não entendi quando você disse o seguinte: “pode criar um Produto com categoria e subcategoria não relacionadas”

Procurei algo sobre relacionamento de classes e percebi que é mais complexo do que imaginava.
Acrescentei alguns metodos nas classes.

class Categoria{   
     int id;   
     List<SubCategoria> subCategoria; 

     string nome;   
     string descricao;   

     public void adicionarSubCategoria(SubCategoria subCategoria){}

}   

class SubCategoria{   
     int id;   
     Categoria categoria;  
     List<Produto> produtos;
     string nome;   
     string descricao;   

     public SubCategoria(Categoria categoria){}
     public void adicionarProdutos(Produto produto){}


}   
class Produto{   
     int id;   
     Categoria categoria;  
     SubCategoria subCategoria;
     string nome;   
     string descricao;   

     public Produto(Categoria categoria, SubCategoria subCategoria){}
}

De acordo com o que eu li a Categoria pode existir sem a subCategoria e sem o Produto.
A SubCategoria não pode existir sem a Categoria, mas pode existir sem o produto.
O Produto não pode existir sem a Categoria e a SubCategoria.

Viajei na maionese ???

Criado 30 de julho de 2010
Ultima resposta 30 de jul. de 2010
Respostas 3
Participantes 3