Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

BRG

[Resolvido] Logica com Mysql

Recommended Posts

Bom dia pessoal.

 

Estou fazendo um sistema de cadastro que tem:

 

Tabela - Categorias

[ex: Cachorro]

Tabela - SubCategorias (Depende de Categoria)

[ex: Ração]

Tabela - Tipo (Depende de SubCategoria)

[ex: Nero]

 

ai Tenho:

Tabela - Produto (Depende de Categoria, SubCategoria e Tipo)

[ex: Decricão da Ração Nero]

Tabela - SubProduto (Depende de Produto)

[ex: 2kg] id - 1

[ex: 3kg] id - 2, etc...

 

Gostaria de saber como faço o mesmo produto aparecer em categorias diferentes sem duplicar o mesmo no banco ?

 

Pensei na seguinte solução:

Inserir o produto sem dependencia da (Depende de Categoria, SubCategoria e Tipo), pegar o ID do ultimo insert e depois criar uma Tabela ExibeProdutos com o (idCategoria, idSubCategorias, idTipo e idProduto). Seria a melhor solução ?

 

 

,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este é um caso de relacionamento n,n.

 

Eu faria uma nova tabela prodXcateg, com o id do produto e o id da categoria.

 

Dessa maneira você pode amarrar um produto a várias categorias e na hora de fazer o select é só fazer um join.

 

Seu modelo de dados está confuso, se tipo está relacionado à subcategoria, que por sua vez está relacionada à categoria, vê se é isso:

 

Categoria

id_categ, descricao

 

Subcategoria

id_subcateg, descricao, fk_id_categ (chave estrangeira)

 

Tipo

id_tipo, descricao, fk_id_subcateg (chave estrangeira)

 

Produto

id_produto, descricao

 

Neste caso sua tabela n,n ficaria assim:

prodXtipo

fk_id_produto (chave estrangeira), fk_id_tipo (chave estrangeira) = chave composta ou cria um campo id e faz um "index unique" com fk_id_produto + fk_id_tipo pra não ter duplicidades.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado, era isso mesmo que estava pensando... mais você me deu uma clareada...

 

,

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.