ops-org/projeto-novo-eleitor

desenv-db-mysql | Trigger de auditoria e versionamento de registros para todas as tabelas do sistema

Opened this issue · 1 comments

i

O objetivo é registrar: quem, quando e o quê fez nos
registros de qualquer tabela do sistema, a fim de que se
mantenha a rastreabilidade da informação e condições
para restaurar alguma informação modificada ou
excluída, de forma conveniente a fim de restabelecer a
situação regular e original da informação.

  1. A trigger de auditoria deve existir e estar ativa
    em todas as tabelas do sistema PNE.

  2. Deve seguir o padrão de nomenclatura como
    tga_(nome_tabela sem o sufixo PNE_)
    Ex: tga_estado

  3. A trigger da tabela deve ser ativada para cada registro
    modificado a tratar:

3.1) Inclusão de registro

 atribuir à coluna CRIADO_POR o código de login do 
 agente de sistema da tabela 
 pne_sis_agente.login_codigo

 atribuir à coluna CRIADO_EM a data SYSDATE 
 completa banco de dados 

 atribuir à coluna VERSAO_REGISTRO o valor
 padrão 1, sendo sua primeira versão.

3.2) Alteração de registro

 atribuir à coluna ALTERADO_POR o código de login do 
 agente de sistema da tabela 
 pne_sis_agente.login_codigo

 atribuir à coluna ALTERADO_EM a data SYSDATE 
 completa banco de dados 

 atribuir à coluna VERSAO_REGISTRO o incremento 
 de +1 sobre o valor da versão anterior. 

 [GRAVAR O HISTÓRICO DE REGISTRO 
 COM ACAO 'A' (Vide item 4)]

3.3) Exclusao de registro

 [GRAVAR O HISTÓRICO DE REGISTRO 
 COM ACAO 'E' (Vide item 4)]
 
 E deixar o banco completar a exclusão
  1. GRAVAR O HISTÓRICO DE REGISTRO Ação 'A'lteração / Ação 'E'xclusão

4.1) Quando for ação de exclusão, salvar todos os valores do registro que será excluído, como uma nova linha para cada valor de coluna na tabela de histórico PNE_SIS_TAB_H_REG. Atribuindo para cada coluna do histórico o nome da tabela de origem, coluna, operção 'E'exclusao e o seu valor na respectiva coluna de acordo com o seu tipo
de dado.

4.2) Quando for ação de alteração, salvar todos os valores do registro modificados exceto as colunas de auditoria, pelos valores NEW.(coluna) <> OLD.(coluna),
e somente quando diferente, criar uma nova linha para cada valor de coluna na tabela de histórico PNE_SIS_TAB_H_REG.Atribuindo para cada coluna do
histórico o nome da tabela de origem, coluna, operção 'A'lteração e o seu valor na respectiva coluna de acordo com o seu tipo de dado.

demanda fechada pelo fato de ainda não se ter o banco de dados com triggers ativas "pessoalmente acho um absurdo" um serviço desses...