[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