Estimados
Buen dia a todos

Desde hace algun tiempo vengo manejando triggers para manejar el
seguimiento de las actividades de los usuarios en una tabla
a todas mis tablas siempre le agrego cuatro campos:
usuario -- El usuario que crea el registro
usuario_update -- El usuario que hizo la ultima modificacion al registro
fregistro -- Timestamp del momento en que se creo el registro
fupdate -- Timestamp del momento en que se produjo la ultima modificacion.

El hecho es que tengo un trigger individual por cada campo y luego lo
aplico a cada tabla tengo como 200 tablas y toda usan estos mismos 4
triggers como por ejemplo aqui lineas mas abajo pongo el trigger para el
usuario que actualiza.

Mi pregunta es que les parece esta manera de usar los triggers ahora estoy
pensando hacer esto mismo con otros campos comunes que estan apareciendo en
mis tablas y quisiera su opinion de alguna idea para mejorar o que
problemas podria tener al usar el mismo trigger en todas las tablas o quiza
juntar todos los campos comunes en un solo trigger creen que esto es
correcto? seria mejor tener un trigger distinto para cada tabla? que
problemas creen que se podrian presentar bueno vengo trabajando de esta
forma ya hace como dos años pero mis base de datos es solo para unos 50
usuarios aprox que estan modificando y consultando una BD con postgis y
hasta ahora ningun problema pero la BD y usuarios estan creciendo asi que
decidi preguntar por aqui haber que ideas me podrian dar

CREATE OR REPLACE FUNCTION public.usuario_upd()
  RETURNS trigger AS
$BODY$
        DECLARE

        BEGIN
                   NEW.usuario_update := "current_user"();
                   RETURN NEW;
        END
        $BODY$
  LANGUAGE plpgsql VOLATILE STRICT
  COST 50;
ALTER FUNCTION public.usuario_upd()
  OWNER TO postgres;

drop trigger usuario_colector_upd;

CREATE TRIGGER usuario_colector_upd
  BEFORE UPDATE
  ON public.al_colector_geo
  FOR EACH ROW
  EXECUTE PROCEDURE public.usuario_upd();

-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205

Reply via email to