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 ?
Procura o pattern Composite. Acho que ajuda bastante no seu caso!
procurei , li e nao entendi, nao sei como aplicar. Voce que leu, entendeu e sabe como aplicar poderia me ajudar ?
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.
[quote=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.[/quote]
não intendi a parte das 2 Pks ?
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 ?
[quote=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 ?[/quote]
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
[quote=umlhard][quote=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 ?[/quote]
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[/quote]
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
alguma solucao pessoal ?
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.
[quote=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.[/quote]
grupo de produto eh uma categoria.exemplo: impressoras, scanners, etc.
entao esta correto o diagrama que passei?
[quote=umlhard][quote]
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
[/quote]
nao tem como pois dessa forma a regra de negocio ficaria :
um produto pode ser composto 0 e no maximo 1 produto
[/quote]
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…
[quote]
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…[/quote]
não entendi sua visao. poderia passa-la em diagrama ? vc viu o diagrama do banco de dados em anexo ?
assim eu to falando
ve ai qq vc acha …
[quote=feltraco]assim eu to falando
ve ai qq vc acha …[/quote]
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…
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