Fórum Esta Tabela Esta Correta? #55077
05/02/2006
0
O cliente poderá fazer a compra de até 10 produtos... o sistema verifica se o PROD01_PEDIDO não está vazio e grava como sendo o primeiro produto comprado... e assim por diante... Se essa não é a forma correta
de se fazer...
poderiam me dizer a melhor forma de montar esta tabela... para depois poder trabalhar da melhor forma com Delphi 7...
CREATE TABLE TAB_PEDIDO (
COD_PEDIDO INTEGER NOT NULL,
MESA_PEDIDO CHAR(10),
VENDEDOR_PEDIDO VARCHAR(15),
CLIENTE_PEDIDO VARCHAR(30),
PROD01_PEDIDO VARCHAR(20),
QTD_PROD01_PEDIDO NUMERIC(15,2),
VLR_PROD01_PEDIDO NUMERIC(15,2),
PROD02_PEDIDO VARCHAR(20),
QTD_PROD02_PEDIDO NUMERIC(15,2),
VLR_PROD02_PEDIDO NUMERIC(15,2),
PROD03_PEDIDO VARCHAR(20),
QTD_PROD03_PEDIDO NUMERIC(15,2),
VLR_PROD3_PEDIDO NUMERIC(15,2),
PROD04_PEDIDO VARCHAR(20),
QTD_PROD04_PEDIDO NUMERIC(15,2),
VLR_PROD04_PEDIDO TIME,
PROD05_PEDIDO VARCHAR(20),
QTD_PROD05_PEDIDO NUMERIC(15,2),
VLR_PROD05_PEDIDO NUMERIC(15,2),
PROD06_PEDIDO VARCHAR(20),
QTD_PROD06_PEDIDO NUMERIC(15,2),
VLR_PROD06_PEDIDO NUMERIC(15,2),
PROD07_PEDIDO VARCHAR(20),
QTD_PROD07_PEDIDO NUMERIC(15,2),
VLR_PROD07_PEDIDO NUMERIC(15,2),
PROD08_PEDIDO VARCHAR(20),
QTD_PROD08_PEDIDO NUMERIC(15,2),
VLR_PROD08_PEDIDO NUMERIC(15,2),
PROD09_PEDIDO VARCHAR(20),
QTD_PROD09_PEDIDO NUMERIC(15,2),
VLR_PROD09_PEDIDO NUMERIC(15,2),
PROD10_PEDIDO VARCHAR(20),
QTD_PROD10_PEDIDO NUMERIC(15,2),
VLR_PROD10_PEDIDO NUMERIC(15,2)
);
obrigado a todos!!!
Adelor Silva
Curtir tópico
+ 0Posts
05/02/2006
Edilcimar
Crie uma tabela de Clientes, Produtos e Vendas.
Quando for vender coloque na tabela de vendas o código do cliente, o código do produto, e outros campos que achar necessário, aí então a cada produto comprado vc dá um append para ir acrescentando, assim o cliente pode comprar 1 ou 1000 produtos que tudo funciona direito
Gostei + 0
05/02/2006
Aroldo Zanela
Pode funcionar da forma que você está fazendo, porém, não é uma boa prática de modelagem de dados. Você deve normalizar os dados e definir a integridade referencial.
No seu caso, apesar de eu ter usado uma simplicação das tabelas que considero ´envolvidas´ no processo de pedidos, sua modelagem deverá se assemelhar com:
create table CLIENTES ( CLI_ID INTEGER not null, CLI_NOME VARCHAR(50), constraint PK_CLIENTES primary key (CLI_ID) ); create table PRODUTOS ( PRO_ID INTEGER not null, PRO_DESCRICAO VARCHAR(50), PRO_UNITARIO NUMERIC(15,2), constraint PK_PRODUTOS primary key (PRO_ID) ); create table VENDEDORES ( VEN_ID INTEGER not null, VEN_NOME VARCHAR(50), constraint PK_VENDEDORES primary key (VEN_ID) ); create table PEDIDOS ( PED_ID INTEGER not null, CLI_ID INTEGER, VEN_ID INTEGER, PED_DATA DATE, constraint PK_PEDIDOS primary key (PED_ID), constraint FK_PEDIDOS_RELATIONS_CLIENTES foreign key (CLI_ID) references CLIENTES (CLI_ID), constraint FK_PEDIDOS_RELATIONS_VENDEDOR foreign key (VEN_ID) references VENDEDORES (VEN_ID) ); create table ITENS ( PEDI_ID INTEGER not null, PRO_ID INTEGER, PED_ID INTEGER, PEDI_QTDE NUMERIC(10,3), constraint PK_ITENS primary key (PEDI_ID), constraint FK_ITENS_RELATIONS_PEDIDOS foreign key (PED_ID) references PEDIDOS (PED_ID), constraint FK_ITENS_RELATIONS_PRODUTOS foreign key (PRO_ID) references PRODUTOS (PRO_ID) );
Gostei + 0
05/02/2006
Adelor Silva
PEDI_ID INTEGER not null,
PRO_ID INTEGER,
PED_ID INTEGER,
PEDI_QTDE NUMERIC(10,3),
constraint PK_ITENS primary key (PEDI_ID),
constraint FK_ITENS_RELATIONS_PEDIDOS foreign key (PED_ID)
references PEDIDOS (PED_ID),
constraint FK_ITENS_RELATIONS_PRODUTOS foreign key (PRO_ID)
references PRODUTOS (PRO_ID)
);
A minha dúvida é justamente neste ponto... Quando eu incluo um produto no pedido ele vai ser incluido no ´PRO_ID´... e os demais produtos... como eles são armazenados... não é necessário ter ´PROD_01, PROD_02´
É justamente isso que eu não entendo, onde fica armazenado
[color=red:70abe5dd2e]´aí então a cada produto comprado vc dá um append para ir acrescentando, assim o cliente pode comprar 1 ou 1000 produtos que tudo funciona direito´[/color:70abe5dd2e] os produtos acrescentados.... são armazenados onde...?
Desculpa minha ignorância, mas isso é muito importante para meu aprendizado... Agradeço a ajuda...
Gostei + 0
06/02/2006
Edilcimar
codprod produto
1 Produto1
2 Produto2
3 Produto3
codcli cliente
1 Cliente1
2 Cliente2
agora a venda de 2 produtos para o cliente 2
codprod codcli quantidade data
1 2 5 06/02/2006
2 2 1 06/02/2006
Esta parte da venda vc faz com um append, ou seja a cada produto vendido é criado um novo registro
Gostei + 0
06/02/2006
Adelor Silva
logo peço ajuda em Notas Fiscais...
valew minha gente... obrigado...
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)