Duvida sobre: Pedidos x Itens
|--------------------------------------------------| | Pedidos | |--------------------------------------------------| |PK ID_PEDIDO INTEGER | | FK ID_CLIENTE INTEGER | | FK ID_FUNC INTEGER | | DATA_PEDIDO DATE | | VALOR_PEDIDO DECIMAL(10,2) | ---------------------------------------------------
|--------------------------------------------------| | Itens | |--------------------------------------------------| |PK FK ID_PEDIDO INTEGER | |PK FK ID_PRODUTO INTEGER | | QTDE_PRODUTO INTEGER | | VALOR_PRODUTO DECIMAL(10,2) | ---------------------------------------------------
bom, primeiro eu gostaria de saber se esta correto o relacionamento das tabelas ?
se está corerto eis a minha duvida:
como posso incluir mais de um item de um mesmo pedido se o campo ID_PEDIDO da tabela ITENS é uma PK ?
[color=red:dcdb3dba25]Erro: violation of PRIMARY or UNIQUE KEY[/color:dcdb3dba25]
o primeiro item é incluido corretamente, apartir dai começa o erro.
se alguem puder me auxiliar eu agradeço.
Ambiente: Delphi7->FireBird1.5->ADO
Fabiano Góes
Curtidas 0
Respostas
Rjun
12/02/2007
Você poderia ter na tabela itens a seguinte estrutura:
[b:9eaf2db66c]
PK - PedidoID
PK - ItemID
FK - ProdutoID
[/b:9eaf2db66c]
[b:9eaf2db66c]
PK - PedidoID
PK - ItemID
FK - ProdutoID
[/b:9eaf2db66c]
GOSTEI 0
Emerson Nascimento
12/02/2007
segundo sua estrutura, o erro só deveria aparecer se você pusesse o mesmo produto duas vezes no pedido, o que levantaria a violação na chave primária.
será permitido ter dois itens iguais num pedido?
PK - ItemID (+)
FK - PedidoID (UK)
FK - ProdutoID (UK)
(com unique avaliando pedido e item, para não permitir que um produto seja repetido nos itens do pedido)
ou
PK - ItemID (+)
FK - PedidoID
FK - ProdutoID
(permite a inclusão de um mesmo produto mais de uma vez no pedido)
será permitido ter dois itens iguais num pedido?
PK - ItemID (+)
FK - PedidoID (UK)
FK - ProdutoID (UK)
(com unique avaliando pedido e item, para não permitir que um produto seja repetido nos itens do pedido)
ou
PK - ItemID (+)
FK - PedidoID
FK - ProdutoID
(permite a inclusão de um mesmo produto mais de uma vez no pedido)
GOSTEI 0
Fabiano Góes
12/02/2007
emerson, realmente o erro estava acontecendo porque estava tentando incluir 2 vezes o mesmo produto.
agora sobre a estrutura da tabela Itens, realmente estou com duvida sobre os relacionamentos, Alguem poderia me dar um exemplo de estrura de tabela Itens_Pedido ?
agora sobre a estrutura da tabela Itens, realmente estou com duvida sobre os relacionamentos, Alguem poderia me dar um exemplo de estrura de tabela Itens_Pedido ?
GOSTEI 0
Emerson Nascimento
12/02/2007
+----------------------------------------+ | Pedidos | +----------------------------------------+ 1 |PK ID_PEDIDO INTEGER (+) | |---+ | FK ID_CLIENTE INTEGER | | | FK ID_FUNC INTEGER | | | DATA_PEDIDO DATE | | | VALOR_PEDIDO DECIMAL(10,2) | | +----------------------------------------+ | | | | +----------------------------------------+ | | Itens | | +----------------------------------------+ | n |PK ID_ITEM INTEGER (+) | +---< | FK ID_PEDIDO INTEGER (U) | +----------------------------------------+ +---< | FK ID_PRODUTO INTEGER (U) | | Produtos | | n | QTDE_PRODUTO INTEGER | +----------------------------------------+ 1 | | VALOR_PRODUTO DECIMAL(10,2) | |PK ID_PRODUTO INTEGER (+) | |---+ +----------------------------------------+ | CODIGO VARCHAR(15) | | DESCRICAO VARCHAR(30) | | CODIGODEBARRAS VARCHAR(20) | | PESO DECIMAL(10,2) | | etc.... | +----------------------------------------+
GOSTEI 0
Corcos
12/02/2007
OT- Vcs usam algum programa para gerar os scripts ou para gerar uma tabela como essa?
Eu faço e sempre fiz tudo na mão pois nunca encontrei um sistema legal para gerar scripts e fazer tabelas/co-relação entre FK e PK
Eu faço e sempre fiz tudo na mão pois nunca encontrei um sistema legal para gerar scripts e fazer tabelas/co-relação entre FK e PK
GOSTEI 0
Fabiano Góes
12/02/2007
emerson,
alterei a estrutura da minha tabela de Itens, assim como a que você me passou e a gora esta funcionando legal, inclusive posso fazer mais de uma inclusão de um mesmo produto em um memso pedido, o que naão era possivel com a estrutura antiga.
Bom, muito obrigado pela dica, eu tambel queria agradecer ao Rjun que também é sempre muito prestativo.
valeu galera !!!
alterei a estrutura da minha tabela de Itens, assim como a que você me passou e a gora esta funcionando legal, inclusive posso fazer mais de uma inclusão de um mesmo produto em um memso pedido, o que naão era possivel com a estrutura antiga.
Bom, muito obrigado pela dica, eu tambel queria agradecer ao Rjun que também é sempre muito prestativo.
valeu galera !!!
GOSTEI 0