Tenho uma grande aplicação PHP, desenvolvida por uma empresa externa, que está sendo finalizada neste momento; Não posso pedir alterações. Utiliza um banco de dados Microsoft SQL Server 2016, que é acessado por alguns usuários via SSMS, inclusive eu, e por algumas tarefas agendadas em horários específicos do dia. Às vezes encontro conteúdo inesperado em algumas tabelas, e é frustrante porque não sei quando chegou lá. Acabei de descobrir sobre tabelas temporais: saber a data e hora exatas em que um registro muda seria extremamente útil.
É possível adicionar tabelas temporais a 2-3 tabelas-chave no aplicativo, sem alterar o código PHP? Existem riscos de compatibilidade ou desempenhos?
Você deve ser capaz de atingir esse objetivo (supondo que o aplicativo seja escrito de forma que adicionar colunas adicionais à tabela não cause problemas). Claro, teste, teste, teste .
Usando o código de exemplo fornecido na postagem de Greg Larsen Alterando uma tabela existente para dar suporte a dados temporais , vamos trabalhar com um exemplo.
Aqui está nossa tabela atual.
Agora queremos rastrear versões .
Há algumas informações muito boas em Criação de uma tabela temporal com versão do sistema que trata da alteração da tabela não temporal para ser uma tabela temporal com versão do sistema .
Agora a
Product
tabela está assimVocê também descobre que foi criada uma nova
ProductHistory
tabela que se parece exatamente com aProduct
tabela. AProductHistory
tabela está vazia no momento porque não atualizamos ou excluímos nada da tabela ProdutoAgora, vamos executar uma atualização para gerar um histórico
A
product
tabela tem os dados atuaisE agora a
ProductHistory
tabela tem uma linha versionadaVocê pode até adicionar uma coluna à
Product
tabela e aProductHistory
tabela automaticamente obtém a nova coluna adicionada tambémProduct
ProductHistory
Você certamente precisaria testar isso em um ambiente de desenvolvimento primeiro. Você pode ter situações únicas que afetam sua decisão de usar tabelas temporais.
Aqui estão alguns links importantes com informações adicionais sobre tabelas temporais
Introdução às tabelas temporais com versão do sistema
Considerações e Limitações da Tabela Temporal
Gerenciar a retenção de dados históricos em tabelas temporais com versão do sistema
Parando o controle de versão do sistema em uma tabela temporal com versão do sistema