Dúvidas criação de estrutura de banco de dados

Bom dia a todos.

é o seguinte, estou com uma dúvida aqui na criação de um projeto com relação a estrutura do banco de dados.
eu tenho uma tabela de vendas, nela tenho o cliente e o produto, daí eu faço a venda, insere a tabela no banco de dados e tudo certo.

o problema começa quando eu quero excluir um cliente, ou um produto que já foi vendido, ele nao deixa pois existe na tabela de vendas o registro do cliente, ou do produto.

Como devo proceder com a estrutura do banco de dados?

(sei que é uma duvida de iniciante, porem já tenho uns projetos pra fazer e isso me atrapalha muito)

obrigado desde já.

Então colega, nesse caso específico digo por experiência própria que o melhor a se fazer é esquecer esse negócio de excluir produtos e clientes do teu banco de dados…

Por que?

Primeiro porque isso está tudo atrelado entre si, vendas, clientes, produtos, formas e prazos de pagamento e todo o resto…

Vai que você exclui um produto que daqui a um ano volta a ser comercializado? Fica chato ter que cadastrar novamente né?

A abordagem mais interessante é você adicionar um “flag” em cada tabela que você sabe que pode sofrer alterações e inativações. E em cima disso, adotar o sistema de ativo/inativo.

Desse modo você mantém todo um histórico das vendas no sistema, o que pode ser bem útil para o cliente. Você não sabe o quanto já me bati atrás de venda feita 2 anos atrás, que o sistema não mantinha…

Enfim, o interessante é não excluir. Mantenha e apenas dê o status de inativo, pois um dia pode voltar a ser útil, e se você excluir um produto por exemplo, vai perder todo o histórico do mesmo, o mesmo se aplica a clientes…

:roll:

Hum entendi, valeu pela dica, vou fazer isso mesmo que voce indicou, criarei um flag pra ativo/inativo e pronto :slight_smile:
eu pensei que tivesse outra forma de controlar, mas a melhor é essa mesmo né.

entao posso colocar uma coluna “ativo” do tipo boolean?
e coloco um check box?

valeu pela dica

[quote=juanlogin]Hum entendi, valeu pela dica, vou fazer isso mesmo que voce indicou, criarei um flag pra ativo/inativo e pronto :slight_smile:
eu pensei que tivesse outra forma de controlar, mas a melhor é essa mesmo né.

entao posso colocar uma coluna “ativo” do tipo boolean?
e coloco um check box?

valeu pela dica

[/quote]

Isso mesmo, um campo boolean já basta!

:smiley:

Essa é uma prática usada muito em sistemas ERP e é uma das mais indicadas também.

São poucas coisas nesse tipo de sistemas que são passíveis de exclusão direta no BD. A maioria é setada como inativa, ou movida pra “arquivo morto”, esse tipo de coisa. Acaba não constando no sistema as vezes, por ser informação antiga, mas ainda assim permanece pra posterior consulta…

blz Ruttman!
é vivendo e aprendendo.

Obrigado…