Atualmente, quero estruturar uma tabela de acompanhamento / histórico como esta:
- PrimaryKey - ID
- OtherTableId - fk
- fieldName - nome do campo que seu rastreamento
- OldValue
- Novo valor
- Nome do usuário
- CreateDateTime
Então, basicamente, eu quero ter uma tabela que rastreie outro histórico de tabelas, armazene o nome da coluna do campo alterado com o valor novo e antigo. Minha pergunta é: alguém pode fazer buracos nisso? Além disso, qual é a maneira mais fácil de garantir que apenas um nome de coluna das tabelas que seu rastreamento seja inserido na coluna fieldName? Atualmente, minhas opções são ter uma enumeração no serviço que estou construindo ou criar outra tabela de status e tornar o fieldName um fk. Alguma ideia melhor?
Editar objetivo: atualmente, existem apenas 2 campos que queremos rastrear. Um campo será mostrado em uma página da web para exibir o histórico, o outro campo será acessado apenas por um departamento e eles terão acesso a uma visualização do banco de dados que poderão consultar. Eles consultariam apenas esse campo para obter informações sobre quem alterou o campo e o que fazer. Essa é a razão pela qual desejamos configurá-lo onde um campo do banco de dados define a coluna da tabela em vez de ter uma cópia exata do histórico de registros da tabela. Queremos apenas dois campos rastreados com as possibilidades de adicionar ou remover campos no futuro.
Obrigado!