ESTOU PROIBIDO DE DELETAR OS FUNCION?RIOS?

MARCOS 04/09/2014 21:31:35
#440966
Boa tarde,Colegas!
Estou com uma dúvida,que para os gurus e mais experientes
é elementar,mais para os principiantes e para mim , que tenho
conhecimento somente intermediário em .NET,não é algo óbvio.

O problema:

Digamos que eu tenho um sistema simples, composto de :

- Formulário de cadastro de funcionários
- Formulário de Cadatro de Produtos
- Formulário de vendas ( Indicando qual funcionário vendeu,que produto e quantidade)

Obs: O sistema registra na BD todas as vendas, para que posteriormente se possa extrair um relatório do que foi comercializado.

A dúvida:

A tabela que armazena as vendas tem os seguintes campos:

- CodV (Chave primária)
- CodFunc (Chave estrangeira)
- CodProd (Chave estrangeira)
- Quant
- Valor

Refletindo um pouco,cheguei a uma conclusão estranha......

Depois que um funcionário ou produto é cadastrado, [Ô]Nunca mais poderá ser deletado[Ô]

Eu digo isto, pois se eu deletar um funcionário ou produto de suas tabelas originais, quando eu precisar tirar algum tempo
depois um relatório de vendas de periodos no passado, os dados destes funcionários (Como nome,etc...) não poderão ser recuperados
para se exibir no relatório.
Se minha linha de pensamento estiver correta, eu no meu formulário de cadastro, ou de produto não poderei colocar a opção [Ô]Delete[Ô]
para meu usuário.

Peço a orientação dos colegas mais experientes,para me esclarecer se eu estou certo, e como devo proceder nesta situação

NILSONTRES 05/09/2014 07:12:30
#440969
Primeiramente:
- CodProd (Chave estrangeira)
- Quant
- Valor

O padrão disso não é ter esses campos na tabela de Vendas, mas sim na tabela de Itens Da Venda.

Quanto a excluir funcionários, não vejo porque não excluir, pois essas dados estarão na tabela de vendas. Mas caso vc precise através da tabela de
vendas resgatar algum dado da tabela funcionários, então devera fazer o tratamento dos erros que ocorrerão, do tipo: [Ô]Funcionario não existente[Ô].

PEGUDO 05/09/2014 08:35:25
#440971
Resposta escolhida
Cara,
Nesta questão, a pergunta não é: [Ô]Este funcionário ou produto pode ser deletado?[Ô]
A pergunta é: [Ô]Vou precisar deste funcionário ou produto mais tarde?[Ô]

Neste contexto, você pode criar um campo tipo Sim/Não (Access) ou bit (Sql Server) para indicar se o funcionário/produto está ativo ou inativo no sistema.
Se for setado como inativo então ele ainda existirá no banco de dados para consultas posteriores mas não será exibido nas telas do programa.

Depois disso você pode criar uma outra funcionalidade (como [Ô]Limpar banco de dados[Ô]) que, aí sim, você pode dar um [Ô]DELETE[Ô] para, efetivamente, deletá-lo do banco de dados.
MARCOS 11/09/2014 08:10:10
#441133
Boa tarde,Pessoal!
PEGUDO,creio que você conseguiu compreender o meu problema.
Se eu deletar o funcionário ,depoisde algum tempo de uso do sistema,
meus registros,das atividades realizadas por este funcionário irão
desaparecer.O registro pode até estar armazenado,mas não será mais possível
exibir dados do Funcionário que realizou a atividade.

A solução:

A sua sugestão é muito boa. Eu,para ser sincero já havia pensado em fazer isto.
Mas,como meu conhecimento é apenas intermediário, fiquei com receio de que houvesse
uma solução melhor e resolvi postar o tópico para os colegas opinarem.
OK,ao que tudo indica,a conclusão a que cheguei é a seguinte:

Conclusão:

Se eu tenho um sistema,no qual tenho:
- Cadastro de Funcionários,Clientes,Produtos,etc....
- E uma funcionalidade que registra atividades realizadas por este funcionário ou ,Cliente .

EU NÃO POSSO DELETAR MEUS FUNCIONÁRIOS OU CLIENTES NUNCA MAIS.

Pois,se o fizer não terei mais acesso aos funcionários que realizaram atividades e foram deletados.
OMAR2011 11/09/2014 08:33:16
#441135
Marcos, vou dar o meu pitaco.
Ontem a tarde recebi um telefonema de uma empresa de contagem Minas.
Foi feito uma compra nesta empresa a mais de oito anos e ela tem meus
dados no cadastro. Imagina se tivesse excluído meus dados se não comprei mais
nenhum produtos deles. Só para você ter uma ideia.
Sou contra a exclusão dos registros.
Valeu.
PEGUDO 11/09/2014 08:53:53
#441139
Sim OMAR2011,
Mas para determinados trabalhos, a exclusão de dados se faz necessário, principalmente se temos um banco de dados pequeno ou então para performance do mesmo.

Somos uma agência de publicidade aqui e trabalhamos com notícias, posts em blogs e redes sociais, pesquisas, etc... e em determinadas épocas, uma postagem feita, por exemplo, em 2006 no Globo ou facebook, não nos interessa mais ou já está ultrapassada ou caducada e não compensa deixá-la ocupando espaço no banco de dados.

Por isso, apoio a sua opinião, mas, dependendo da utilização do programa, certos dados podem ser deletados, basta ver a relevância deles para o projeto/trabalho.
Tópico encerrado , respostas não são mais permitidas