Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Guerino Rodella

Inserção múltiplos registros na chave estrangeira

Recommended Posts

Bom dia galera, tudo certo?!

 

Estou com um dúvida muito "noob" que está me matando. É o seguinte, estou desenvolvendo um sistema comercial e preciso fazer no BD a tabela de vendas, relacioná-la com a tabela de clientes e relacioná-la com produtos.

 

Para isto, eu fiz a tabela VENDAS, CLIENTE e PRODUTO (cada uma tem sua própria chave primário (PK) do tipo SERIAL).

Uma venda é de somente 1 CLIENTE. VENDA -> CLIENTE 1:1;

Uma venda tem no mínimo 1 PRODUTO ou vários produtos ( N ). VENDA -> PRODUTO 1:N;

 

A tabela VENDAS, armazena o ID do PRODUTO como chave estrangeira ( FK ). Isso me permite consultar os produtos de determinada venda. E o mesmo ocorre para o cliente.

 

Então, minha tabela de VENDAS ficou assim:

_id SERIAL PK NN,
_idCliente INTEGER FK NN,
_idProduto INTEGER FK NN,

...

(outros campos que não são necessários)

 

NN = NOT NULL

 

O meu problema é que a tabela VENDAS precisar armazenar vários registros de produtos mas, do modo que está, eu só consigo inserir um único produto por venda.

Como eu faço para que a tabela VENDAS aceite vários registros de produtos?

Se eu estive fazendo algo errado, por favor, me avisem. Se existir a necessidade de uma nova tabela, sugiram se for caso ( Eu até pensei na tabela ITEMS_VENDA mas na minha lógica não resolveu meu problema ).

 

Espero ter sido claro. Desde já, agradeço.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se uma VENDA tem N produtos a solução é ITEMS_VENDA com id da venda, id do produto, preço etc.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como assim, Motta?

Criarei uma terceira tabela chamada ITEM_VENDA e nela terá os campos:
_id SERIAL PK NN;
_idVenda INTEGER FK NN Referência na PK VENDAS,

_idProduto INTEGER FK NN Referência na PK PRODUTOS;

... demais campos

Desse modo eu terei em uma venda a criação de vários registros na tabela ITEM_VENDA?

 

E como ficaria o insert disso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ao nível do BD um simples insert, na camada de aplicação existem diversas soluções para implementar CRUD de tabelas "mãe e filha".

 

Como é montada a chave da tabela de vendas ? Sequence ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.