Produto composto

17 respostas
U

ola amigos estou com dificuldades na analise de um sistema de controle de estoque onde possui produtos composto.
como faço? coloco produto agregando produto ? mas como ficaria o banco de dados ?

17 Respostas

nicholas.bittencourt

Procura o pattern Composite. Acho que ajuda bastante no seu caso! :smiley:

U

procurei , li e nao entendi, nao sei como aplicar. Voce que leu, entendeu e sabe como aplicar poderia me ajudar ?

nicholas.bittencourt

Imagina um motor de carro… Ele é composto de varias peças mas o motor tambem pode ser considerado uma peça.

No seu caso existe o produto, que pode ser simples ou um produto composto de varios outros produtos. Nesse caso, voce possui uma superclasse Produto e as implementaçoes que podem ser arroz, feijao ou que quer que seja. Se voce tiver um produto Prato Feito, ele possui um “subproduto” arroz e feijao. Consegui me expressar bem??

Na implementação, temos uma colecao em produto que diz quais os subprodutos dele. Em banco de dados isso é uma tabela de relacionamentos de produto pra produto com uma PK composta por 2 PKs de produto. Só é importante evitar ciclos nessa história toda.

feltraco

nicholas.bittencourt:

Em banco de dados isso é uma tabela de relacionamentos de produto pra produto com uma PK composta por 2 PKs de produto. Só é importante evitar ciclos nessa história toda.

não intendi a parte das 2 Pks ?

U

seria isto ?



feltraco

pq em vez de criar uma 2ª tabela
não faz o relacionamento com ela mesma…

produto tem muitos produto

onde FK de produto pode ser null

??

ou naum é uma boa abordagem ?

U

feltraco:
pq em vez de criar uma 2ª tabela
não faz o relacionamento com ela mesma…

produto tem muitos produto

onde FK de produto pode ser null

??

ou naum é uma boa abordagem ?

se eu relacionar tabela produto com tabela produto entao mudara uma regra de negocio:
um produto pode possuir 0 ou muitos produtos para um produto deve possuir no minimo 1 e no maximo muitos produtos

pois a tabela produto tera duas chaves primarias ( o cod do produto e o cod prod composto ), e como nao pode haver chave primaria null entao fudeu

feltraco

umlhard:
feltraco:
pq em vez de criar uma 2ª tabela
não faz o relacionamento com ela mesma…

produto tem muitos produto

onde FK de produto pode ser null

??

ou naum é uma boa abordagem ?

se eu relacionar tabela produto com tabela produto entao mudara uma regra de negocio:
um produto pode possuir 0 ou muitos produtos para um produto deve possuir no minimo 1 e no maximo muitos produtos

pois a tabela produto tera duas chaves primarias ( o cod do produto e o cod prod composto ), e como nao pode haver chave primaria null entao fudeu

não…

a tebala vai possuir uma PK e uma FK

ai como falei vc coloca a FK como aceitando null (o que é possícel)

assim um produto pode ter 0 ou * produto

U

nao tem como pois dessa forma a regra de negocio ficaria :

um produto pode ser composto 0 e no maximo 1 produto

U

alguma solucao pessoal ?

nicholas.bittencourt

umlhard,

Acho que é isso mesmo que pensei no Banco de Dados. Só nao entendi o que seria a classe GrupoDeProdutos, que não tem mais necessidade uma vez que o produto pode ser um grupo dele mesmo.

U

nicholas.bittencourt:
umlhard,

Acho que é isso mesmo que pensei no Banco de Dados. Só nao entendi o que seria a classe GrupoDeProdutos, que não tem mais necessidade uma vez que o produto pode ser um grupo dele mesmo.

grupo de produto eh uma categoria.exemplo: impressoras, scanners, etc.

entao esta correto o diagrama que passei?

feltraco

umlhard:

não…

a tebala vai possuir uma PK e uma FK

ai como falei vc coloca a FK como aceitando null (o que é possícel)

assim um produto pode ter 0 ou * produto

nao tem como pois dessa forma a regra de negocio ficaria :

um produto pode ser composto 0 e no maximo 1 produto

não…
um produto pode ter 0 ou * produto

um produto tem um produto(que sendo um produto pode ter outro produto) e assim por diante…

olhando o seu modelo… vai ficar mt parecido…

U

não…
um produto pode ter 0 ou * produto

um produto tem um produto(que sendo um produto pode ter outro produto) e assim por diante…

olhando o seu modelo… vai ficar mt parecido…

não entendi sua visao. poderia passa-la em diagrama ? vc viu o diagrama do banco de dados em anexo ?

feltraco

assim eu to falando

ve ai qq vc acha …

U

feltraco:
assim eu to falando

ve ai qq vc acha …

entao amigo desse jeito o maximo que poderei fazer eh cadastrar um produto composto, como ja dito antes isso ficaria ( um produto pode ter 0 e no maximo 1 produto composto ) vc nao concorda comigo? faz o seguinte:

cadastre 2 produtos ( A, B ), cadastre agora um produto C que sera composto de A e B, entendeu??? nao tem como…

feltraco

malz… agora intendi o que vc quis dizer…

a -> b
a -> c
a -> d

enquanto eu estava fazendo

a -> b -> c -> d

ambos estamos certos…
soh que para o problema sugerido o seu soluciona

:wink:

Criado 31 de janeiro de 2008
Ultima resposta 31 de jan. de 2008
Respostas 17
Participantes 3