GARANTIR DESCONTO

Fórum Duvida sobre: Pedidos x Itens #337736

12/02/2007

0

|--------------------------------------------------|
|   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

Fabiano Góes

Responder

Posts

12/02/2007

Rjun

Você poderia ter na tabela itens a seguinte estrutura:

[b:9eaf2db66c]
PK - PedidoID
PK - ItemID
FK - ProdutoID
[/b:9eaf2db66c]


Responder

Gostei + 0

12/02/2007

Emerson Nascimento

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)


Responder

Gostei + 0

12/02/2007

Fabiano Góes

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 ?


Responder

Gostei + 0

12/02/2007

Emerson Nascimento

+----------------------------------------+
|   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....                              |
+----------------------------------------+



Responder

Gostei + 0

12/02/2007

Corcos

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


Responder

Gostei + 0

12/02/2007

Fabiano Góes

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 !!!


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar