Ver Mensaje Individual
  #6 (permalink)  
Antiguo 05/07/2009, 19:58
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Como auditar tablas en Postgre 8.2

Nunca he estado de acuerdo con ese tipo de 'soluciones' a problemas que se solucionan con un simple campo. Te explico rodrigo... si la decisión no depende de ti y te están exigiendo hacerlo exclusivamente de esta forma (Borrar los registros y almacenarlos en otra tabla historial), deberías hacer caer en cuenta a tu grupo de analistas el crecimiento innecesario del MER con la inclusión de gran numero de tablas para el almacenamiento de información que posiblemente será reintegrada.

La mejor solución, es incluir en la tabla un campo adicional llamado estado y que tenga 2 tipos de datos, activado y desactivado. En vez de borrar el registro (Delete) hacer una actualización al campo (update).

De esta forma, si se quieren ver los niños, familias, asignaturas, grupos añumnos etc. Solo basta con volver a tener habilitado el registro con un update.

El trabajo que hasta ahora has hecho con los triggers, no se pierde... ya que puedes cambiar las sentencias delete por sentencias update y te ahorraras este problema de historial que tienes en este momento.

Los triggers son muy útiles para auditar tablas, pero para almacenar la fecha y hora en que se hizo un cambio, el usuario que lo realizó etc. pero no para almacenar en otra tabla información que no le estaba haciendo daño a nadie donde estaba y se puede controlar fácilmente con una consulta.

Si sigues empeñado en guardar toda la info en nuevas tablas, creo que si es necesario crear una BD replica con relaciones que permita almacenar los datos borrados en la misma parte, pero como te digo.. no tiene ningún sentido realizar este tipo de implementaciones, cuando existen soluciones mas optimas y sencillas.

Un saludo y espero haberte ayudado.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming