Olá pessoal,
Estou projetando um banco dados e como não sou nenhum DBA fiquei com dúvida ao projetar uma situação onde será preciso guardar uma versão do registro que foi alterado para posterior verificação ou recuperação do dado. Veja o que pensei:
-
Criar um tabela nova (TabelaVersao), identica a primeira com uma chave estrangeira para fazer o relacionamento com a tabela com os dados atuais (TabelaOriginal). Entao quando houver alguma modificação na tupla da TabelaOriginal transfiro a tupla inteiro para a TabelaVersao.
Pior que desse jeito, se alterar apenas um atributo (por exemplo um atributo data) será gerado uma versao de todos os outros atributos da tupla. Assim teremos um enorme quantidade de dado repetido. Essa tabela pode ter ate 15 atributos e repetir 14 por causa de 1 me parece estranho; -
Pensei em criar uma TabelaVersao onde so guardasse o valor alterado. Mas dai os tipos dos atributos são de diferentes formatos além do que se eu guardar apenas o registro alterado não imagino como poderia mostrar os dados para o usuário sem fazer muitos malabarismo pelo codigo.
O que vocês acham sobre este caso?