[firebase-br] Composição de produtos, select recursivos e afins...
Eduardo Jedliczka
jedyfb em gmail.com
Ter Abr 28 13:12:16 -03 2009
A estrutura ideal é muito próxima desta. só tome cuidado com o tamanho
do segmento dos blobs... 16k pode deixar qualquer select absurdamente
lento.
Quanto ao problema de implosão e explosão de matérias-primas x produto
acabado, a melhor abordagem seria utilizar algumas procedures para
conseguir o correto descritivo do produto final e o cálculo do custo.
Abraço
Eduardo.
Em Ter, 2009-04-28 às 12:42 -0300, Lucas Zampar escreveu:
> Bom dia senhores,
>
>
> Estou tentando resolver um problema há vários tinhas porém sem sucesso.
> Na empresa em que trabalho, vendemos produtos que podem ser compostos
> ou simplesmente comerciais.
> O problema está sendo eu criar a árvore de relacionamento de produtos
> compostos.
>
> Por exemplo:
> Um HD é um produto tipo = "C", pois é comercial e não tem estrutura de
> composição.
> Uma MEM RAM é um produto tipo = "C", pois é comercial e não tem
> estrutura de composição.
> Um GABINETE é um produto tipo = "C", pois é comercial e não tem
> estrutura de composição.
>
> Os produtos manufaturados são do tipo = "M", exemplo:
>
> Já um COMPUTADOR MOD1 tem em sua composição:
> 1 HD
> 2 MEM RAM
> 1 GABINETE
>
> Um COMPUTADOR MOD2 tem em sua composição:
> 2 HD
> 1 MEM RAM
> 1 GABINETE
>
> Já um SERVIDOR tem sua composição:
> 1 COMPUDATOR MOD1
> 2 HD
> 2 MEM RAM
>
> Observem que tenho de ter n níveis e adicionar vários produtos tanto
> comerciais, como compostos.
> Sabendo que todos produtos compostos são feitos de comerciais...
>
> Segue em anexo as DDL das minhas duas tabelas:
>
> CREATE TABLE PRODUTO (
> CODIGO INTEGER NOT NULL,
> TIPO VARCHAR(1),
> CODPRODUTO VARCHAR(16),
> DESCRICAO VARCHAR(255),
> QUANTIDADEATUAL NUMERIC(6,2),
> QUANTIDADEMINIMA NUMERIC(6,2),
> PESO NUMERIC(3,2),
> CUSTOCOMPRA NUMERIC(9,3),
> CUSTOFINAL NUMERIC(9,3),
> PRECOVENDA NUMERIC(9,3),
> IPI NUMERIC(5,2),
> MARKUP NUMERIC(5,2),
> MEDIDAS VARCHAR(15),
> LOCALIZACAO VARCHAR(4),
> OBS VARCHAR(255),
> DETALHAMENTOPROPOSTA BLOB SUB_TYPE 1 SEGMENT SIZE 16384,
> FOTOS BLOB SUB_TYPE 1 SEGMENT SIZE 16384,
> UNIDADE SMALLINT,
> GRUPO SMALLINT
> );
>
>
> Minha tabela de relacionamentos:
>
> CREATE TABLE PRODUTOCOMPOSICAO (
> CODIGO INTEGER NOT NULL,
> CODIGOPRODUTO INTEGER NOT NULL,
> CODIGOPRODUTOADICIONADO INTEGER NOT NULL,
> QUANTIDADE NUMERIC(9,3) NOT NULL
> );
>
>
> 1) Aí pergunto a vocês, estão estruturadas corretamente as minhas tabelas?
>
> 2) Como fazer para que o custo final de um produto composto sempre se
> mantenha atualizado através dos custos dos componentes comerciais?
>
> 3) Como realizar um select que me mostre a raiz de todos os componentes
> que compõem um produto composto?
> Ex:
>
> Composição do Servidor
> - 1 Computador MOD 1
> -- 1 HD
> -- 2 MEM RAM
> -- GABINENTE
> - 2 HD
> - MEM HD
>
> Atualmente tenho uma tabela que mantém o cadastro de produtos e outra
> que mantém o relacionamento entre eles.
> O preço de venda dos produtos compostos são calculados toda vez que é
> alterada a estrutura da tabela de relacionamento através de um trigger.
>
> Agradeceria muito quem pudesse me dar uma ajuda!
>
> E desculpem pelo longo e-mail!
>
>
> Atenciosamente,
>
>
> Lucas Zampar Bernardi
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista