Jump to content

Dúvida relação BD


filipemm
 Share

Recommended Posts

Boas...

Estou a fazer um programa em VB6 com BD em Access e surgiu aqui uma pequena dúvida..

1288160328.jpg

Na tabela vendas pretendo fazer vendas com um ou mais produtos pelo que não sei se, da forma que tenho, mais do que um produto será permitido...

E, nos produtos, um produto pode dar para várias vendas e para vários orçamentos..

A minha dúvida é mesmo se estas relações estão correctas..

Não sei se me fiz entender bem..  😄

Link to comment
Share on other sites

cá para mim tens que criar uma tabela de detalhe da venda.

Para ligares a venda ao produto.

Caso contrário vais estar a repetir uma ´serie de dados.

Imaginando uma Factura... tens um único cabeçalho... mas uma série de linhas de produtos ;-)

Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!

Link to comment
Share on other sites

Dessa forma cada venda tem apenas um produto, não faz o queres.

O normal nesses casos é usares linhas de venda. Uma venda tem os dados comuns, e pode ter várias linhas de venda. Cada linha de venda tem apenas uma venda associada e tem os dados específicos para cada produto, como valores, quantidades, ids, etc.

Assim para cada venda crias uma linha para cada produto e consegues fazer o que pretendes.

Link to comment
Share on other sites

cá para mim tens que criar uma tabela de detalhe da venda.

Para ligares a venda ao produto.

Caso contrário vais estar a repetir uma ´serie de dados.

Imaginando uma Factura... tens um único cabeçalho... mas uma série de linhas de produtos ;-)

Exacto.. esse exemplo da factura pode-se aplicar aqui..

Vários produtos na mesma factura...

Sendo assim, esta deverá ser uma relação de muitos para muitos certo?

E tenho que introduzir uma tabela no meio dos produtos e vendas com os campos idProduto e idVenda??

Link to comment
Share on other sites

Dessa forma cada venda tem apenas um produto, não faz o queres.

O normal nesses casos é usares linhas de venda. Uma venda tem os dados comuns, e pode ter várias linhas de venda. Cada linha de venda tem apenas uma venda associada e tem os dados específicos para cada produto, como valores, quantidades, ids, etc.

Assim para cada venda crias uma linha para cada produto e consegues fazer o que pretendes.

Acho que te percebi +/-..

Mas como é que faço isso das linhas de venda?

Link to comment
Share on other sites

Alinda venda será a tal linha intermédia...onde terás o Id da Venda,  O id do produto vendido, as quantidades, o preço, a tx de IVA... e por aí fora... as características relativas ao produto.

Já a tabela de vendas..poderá ter agora por exemplo o dia, a hora, o funcionário que vendeu...e por ai fora... Características da Venda ;-)

Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!

Link to comment
Share on other sites

Alinda venda será a tal linha intermédia...onde terás o Id da Venda,  O id do produto vendido, as quantidades, o preço, a tx de IVA... e por aí fora... as características relativas ao produto.

Já a tabela de vendas..poderá ter agora por exemplo o dia, a hora, o funcionário que vendeu...e por ai fora... Características da Venda ;-)

Acho que não me percebeste bem..

Eu quero é utilizar um ou mais produtos para a mesma venda, mas produtos diferentes, com id's diferentes, ou seja, com o mesmo idVenda, pretendo ter vários idProduto...

Como é que faço isso?? Ponho uma tabela no meio das vendas e dos produtos com o id de cada um?? Assim dá?

Link to comment
Share on other sites

Reformulando

A venda é única... E pode ser inscrita na tabela de vendas.

Características possíveis para a venda:

ID da venda

Data/ Hora

Funcionário

Cliente

Eventualmente valor total da factura

Depois na Tabela de Linhas venda Vais inscrever

O Id da venda (que vai ser sempre o mesmo)

O Produto Vendido (que varia de acordo com o produto que estas a vender)

As quantidades

O preço

A taxa de Iva

O valor total para o produto.

Não sei se fui mais claro... mas eu estou a perceber claramente o que queres.

Na realidade Vais fazer um insert na tabela de Vendas e n na tabela de linhas de vendas... tantos como os produtos que venderes.

Espero que agora tenha sido mais claro

Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!

Link to comment
Share on other sites

Ok.. então basicamente era o que eu estava a dizer..

Meto mais uma tabela com o idVenda e o idProduto (e, eventualmente a quantidade) no meio das vendas e produtos...

Assim, pelo idVenda vou buscar o resto dos dados à tabela vendas e pelo idProduto à tabela produtos..

E quando fizer o insert da venda tenho que inserir dados na tabela vendas e na nova tabela..

Correcto?

Link to comment
Share on other sites

basicamente..sim

Agora se fosse comigo..o form controlava as vendas e depois as linhas de venda ficavam a aparecer numa listview ou coisa do género.. (como por exemplo os sobformulários em acess).

Depois essa listviem abria-te o formulário de linhas de vendas para editar ou inserir uma linhda de venda nova

Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!

Link to comment
Share on other sites

basicamente..sim

Agora se fosse comigo..o form controlava as vendas e depois as linhas de venda ficavam a aparecer numa listview ou coisa do género.. (como por exemplo os sobformulários em acess).

Depois essa listviem abria-te o formulário de linhas de vendas para editar ou inserir uma linhda de venda nova

LOOOL... Por acaso até tenho +/- assim..

Depois quando acabar o programa ponho aqui para veres..

Obrigado pela ajuda 😄

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.