none
Marter histórico de atualizações de registros no banco de dados. C# + SQL Server. RRS feed

  • Pergunta

  • Eae pessoal, gostaria de pedir a sugestão de vocês em uma necessidade que apareceu em um projeto. Estou tendo que manter uma espécie de histórico de um cliente, ou seja, uma vez solicitado este histórico da cliente Ana por exemplo, irei retornar uma tabela, constando que no dia 08/01/2014 a Ana foi cadastrada no sistema pelo usuário Bob, e que no dia 08/04/2014 o cadastro da Ana foi atualizado o endereço pelo usuário Carlos, e assim por diante... O que eu pensei foi o seguinte, criar uma tabela com os mesmo dados do cliente, e adicionar nesta tabela por exemplo a data da atividade, o tipo da atividade, e quem realizou essa atividade... Porém não sei se essa seria a melhor maneira para isso, pois eu iria ter nesta tabela uma repetição muito grande dos dados, vamos supor que o cliente sofreu 10 alterações, logo iria existir desse mesmo cliente, 11 registro o de inserção e os 10 de atualização.

    Gostaria de saber de vocês de está é a melhor maneira de alcançar esse objetivo, ou se vocês tem alguma sugestão melhor. Estou utilizando Visual Studio C# e Banco de Dados SQL Server.
    terça-feira, 5 de agosto de 2014 12:58

Respostas

  • melhor vc cria uma tbl_lgo e fazer usar trigger aftar insert, atter update, e registra isso ai

    tipo

    tbl_log(id_log auotinc, id_func, id_operador, data_hora, operacao)

                                        


    Charles Tenorio

    • Sugerido como Resposta Jean Carlos Galhardi terça-feira, 5 de agosto de 2014 13:54
    • Marcado como Resposta Jose_Alves terça-feira, 5 de agosto de 2014 14:39
    terça-feira, 5 de agosto de 2014 13:34
  • blz vc vai ter q replica informações, mas faça isso via trigger e mais rápido seguro e simples se tiver dúvida eu 

    mostro como fazer mas tente antes. 


    Charles Tenorio

    • Marcado como Resposta Jose_Alves terça-feira, 5 de agosto de 2014 14:39
    terça-feira, 5 de agosto de 2014 14:36

Todas as Respostas

  • Talvez o melhor seja uma tabela filha relacionada a tabela de clientes.

    Por exemplo, na tabela 'Cliente' você teria campos como IdCliente, Nome, Endereco, etc... Dai na tabela 'LogCliente' você poderia ter campos como IdLog, IdCliente, AcaoExecutada, UsuarioResponsavel, Data.

    Te ajuda?

    terça-feira, 5 de agosto de 2014 13:10
  • melhor vc cria uma tbl_lgo e fazer usar trigger aftar insert, atter update, e registra isso ai

    tipo

    tbl_log(id_log auotinc, id_func, id_operador, data_hora, operacao)

                                        


    Charles Tenorio

    • Sugerido como Resposta Jean Carlos Galhardi terça-feira, 5 de agosto de 2014 13:54
    • Marcado como Resposta Jose_Alves terça-feira, 5 de agosto de 2014 14:39
    terça-feira, 5 de agosto de 2014 13:34
  • Sim eu pensei em fazer algo semelhante a isso mesmo, porém também tenho a necessidade de mostrar os dados alterados por exemplo. 

    Exemplo:
    No cadastro a Ana morava na Rua A e na atulização ela se mudou para a Rua B um exemplo...

    Pensei em ter uma tabela com o codigoHistorico, dataAtualizacao, usuarioResponsavel, codigoCliente, e os demais campos da tabela Cliente. Porém como eu disse não sei se essa seria a melhor forma de proceder.Pois pensei justamente na reduntância de dados que existiaria.
    terça-feira, 5 de agosto de 2014 13:42
  • pq vc precisa disso? tipo não basta, saber q o registro foi alterado ou incluído? 

    não sei se arquivos de log do sql server tem isso, e se tem como acessar?


    Charles Tenorio

    terça-feira, 5 de agosto de 2014 13:48
  • Então, sei que parece uma coisa muito redundante por isso da minha dúvida, porém trata-se de um sistema de qualidade, aonde é necessário constar as alterações sofrida nos registros. Seria mesmo para a possível necessidade de rastrear possíveis erros oriundo de alterações realizadas de forma errada ou inconsistente.
    terça-feira, 5 de agosto de 2014 14:02
  • blz vc vai ter q replica informações, mas faça isso via trigger e mais rápido seguro e simples se tiver dúvida eu 

    mostro como fazer mas tente antes. 


    Charles Tenorio

    • Marcado como Resposta Jose_Alves terça-feira, 5 de agosto de 2014 14:39
    terça-feira, 5 de agosto de 2014 14:36
  • Eu pesquisei aqui na internet e acho que consigo fazer, mais qualquer coisa posto a duvida, valeu por sua ajuda.
    terça-feira, 5 de agosto de 2014 14:39
  • por nada!

    Charles Tenorio

    terça-feira, 5 de agosto de 2014 14:41