[firebase-br] RES: Composição de produtos, select recursivos e afins...
lazaro
lazaro em usinaalvorada.com.br
Ter Abr 28 12:58:20 -03 2009
Amigo simplifica sua vida...
Faz um tabela mestre produtos com uma chave primaria e tudo
Coloca um atributo Tipo_produto 'P','k','s'
Sendo p=produto, K=kit, S= serviço
Quando for kit vc vende os itens da tabela kit (PRODUTOCOMPOSICAO), se for p
então vende normalmente e assim sucessivamente.
Foi assim que fiz a 2 anos atrás, em um sistema para bicicletaria.
-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Lucas Zampar
Enviada em: terça-feira, 28 de abril de 2009 12:43
Para: lista em firebase.com.br
Assunto: [firebase-br] Composição de produtos, select recursivos e afins...
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