Histórico temporal
Todo registro de negócio guarda seu histórico completo de mudanças. Cada versão é delimitada pelo período em que foi verdadeira, então é possível reconstruir qualquer registro como ele estava em qualquer momento passado.
Por que existe
Dados mestres alimentam decisões, e decisões são questionadas depois. "Qual endereço tínhamos quando aquele extrato foi emitido?" só tem resposta se o valor antigo ainda existir.
Sobrescrever no lugar torna isso irrespondível. Guardar o histórico torna rotineiro.
As garantias
Duas propriedades valem por construção, aplicadas pelo banco de dados e não por convenção:
- Sem lacunas. Todo instante desde a criação do registro é coberto por exatamente uma versão.
- Sem sobreposições. Duas versões do mesmo registro nunca reivindicam o mesmo instante.
Juntas, elas significam que uma pergunta sobre um ponto no tempo tem sempre exatamente uma resposta. Não zero, não duas.
Histórico versus auditoria
Duas coisas diferentes, facilmente confundidas:
| Responde | Formato | |
|---|---|---|
| Histórico temporal | Como este registro era naquele momento? | Versões de um registro |
| Log de auditoria | Quem mudou isto, e quando? | Eventos somente-adição |
O histórico reconstrói um estado; o log de auditoria investiga uma ação. Normalmente você quer os dois: o histórico diz que o endereço estava errado, a auditoria diz quem o mudou e quando.
Vigência de relacionamentos
Relacionamentos carregam seu próprio período de vigência, então um vínculo que termina é encerrado, não excluído. Quando um fato muda — um ativo vendido, um vínculo empregatício encerrado — a janela anterior fecha e uma nova abre.
Perguntar quem era o proprietário de um ativo em março passado devolve o proprietário daquela data, não o atual.
Cargas iniciais
A primeira carga em massa numa organização nova pode dispensar o histórico, já que não há estado anterior a preservar. Um registro carregado assim começa seu histórico na primeira mudança real.
Esta é uma opção deliberada apenas para a carga inicial. Usá-la em operação contínua descarta exatamente o histórico que você vai querer depois.
A seguir
Última verificação no commit d3c2586b (2026-08-03)