Preciso configurar um recurso de histórico em um projeto para acompanhar as alterações anteriores.
Digamos que eu tenho duas tabelas agora:
NOTES TABLE (id, userid, submissionid, message)
SUBMISSIONS TABLE (id, name, userid, filepath)
Exemplo: Eu tenho uma linha nas anotações e o usuário deseja alterar a mensagem. Quero acompanhar o seu estado antes e depois da mudança.
Qual seria a melhor abordagem para configurar uma coluna em cada uma dessas tabelas, indicando se um item é "antigo". 0 se ativo OU 1 se excluído / invisível.
Eu também quero criar uma AUDIT TRAIL
tabela history ( ) que contém o id
estado anterior, o id
do novo estado, a qual tabela esses IDs se relacionam?
mysql
database-design
audit
Schwarz
fonte
fonte
Respostas:
Por favor veja
http://www.codeproject.com/Articles/105768/Audit-Trail-Tracing-Data-Changes-in-Database
É uma leitura muito boa das abordagens para criar uma trilha de auditoria no design do banco de dados. Trilhas de auditoria são necessárias para a implementação de um banco de dados. Você sempre deve poder ver as ações dos usuários do banco de dados no sistema.
Podemos rastrear quais linhas foram alteradas quando em nosso sistema PTA (Point in Time) adicionando algumas colunas PTA padrão (point in time) a todas as tabelas de interesse do PTA.
Sugiro o seguinte:
fonte
Ao projetar recursos de versão em seus dados, existem vários requisitos mínimos (eu acho):
Aqui estão os slides de uma apresentação que fiz algumas vezes em feiras de tecnologia. Ele cobre como tudo o que foi dito acima pode ser feito. E aqui está um documento que entra em mais detalhes. Devo pedir desculpas pelo documento - é um trabalho em andamento e nem todas as seções foram concluídas. Mas deve fornecer a você todas as informações necessárias para implementar qualquer coisa, desde versão simples até acesso bi-temporal completo.
fonte
This means no flag or other indicator showing which is the current version and which are "history."
, se não há sinalizador ou indicador, como diferenciamos a versão atual da versão do histórico? Especialmente com base no seu terceiro ponto, no qual você sugere que eles estejam na mesma tabela.