Boa noite pessoal.
Comecei a fazer um programa pra estudo e tive uma duvida quanto ao banco de dados.
Vamos lá.
Eu tenho uma classe Produto e outras subClasse, como Roupas, Cosmeticos, etc.
Tenho uma outra classe chamada Imagem que é relacionada com Produtos, todos produto pode ter uma ou mais imagens.
Na parte do java não tenho dúvidas quanto a herança o problema que estou tendo é como efetuar esta modelagem no banco de dados.
Devo criar uma tabela no banco de dados para a super classe e cada subclasse separada?
Minha tabela imagem possui como chave estrangeira apenas o idProduto, portanto se criar várias classe, iriam ter ids repetidos e imagens que não correspondem aos produtos.
Obrigado.
Se uma imagem sua qualquer tem um idProduto, ela fatalmente corresponde àquele produto, a não ser que ele tenha sido apagado. É óbvio que se há várias imagens com mesmo idProduto, é porque aquele produto tem várias imagens associadas…
Você é que precisa decidir se suas relações serão um-para-um ou um-para-muitos…
Oi Roselito, obrigado pela resposta, mas vamos lá.
Eu teria apenas uma tabela Imagens, caso eu crie a classe Produto (superclasse) e as subclasses (roupas, cosmeticos, etc), cada tabela dessa irá gerar seu próprio id, este é meu problema, pois se cada tabela gerar seu id, se temos pelo menos 3 tabelas, teremos 3 ids com o número 1 por exemplo. Então como ficaria pra eu poder setar este id dos produtos na tabela Imagem?
Esta é a minha dúvida, como tratar no banco de dados quando fazemos herança no java.
Valeu
Cara, no seu caso eu geralmente tenho uma tabela para cada subclasse e uma fk para cada tabela, ex:
Tabela Roupas
ID
DESCRICAO
…
Tabela Cosmeticos
ID
DESCRICAO
…
Tabela Imagens
ID
IMAGEM
FKROUPAS
FKCOSMETICOS
…
Não sei se é a melhor solução (acredito q não seja) mas para mim até o momento funcionou bem, tbm não tive muito tempo p/ pesquisar uma solução melhor! Vou acompanhar esse tópico d perto p/ ver as dicas 
Você não relaciona um id de uma tabela com o id de outra tabela - só quendo a relação é um-para-um. No caso de relações que envolvem “muitos”, sempre relacionamos a chave primária da tabela “um” com a chave estrangeira da tabela “muitos”.
Assim, sua tabela imagens vai ter uma chave primária e também vai ter uma chave estrangeira, para relacionar com os produtos.
E há várias maneiras de criar a chave primária, não precisa necessariamente ser um código crescente, pode ser também uma combinação de dois atributos, desde que retorne um valor único.
Particularmente, eu uso sempre um número crescente.