Avisos
Vaciar todo

Conocer los usuarios que modifican registros en una tabla de mi ddbb  

 
José López
 José López
Usuario experto

Buenos días. Tengo una consulta que haceros. No sé si será factible o no pero me gustaría conocer que usuario ha modificado un registro de una tabla. Os lo ilustro con un ejemplo para expliicarme mejor:

En mi base de datos tengo una tabla que recoge todos los trabajos que se vienen realizando en la empresa. Cada registro (fila) contiene información (campos) sobre un trabajo concreto.
Algunos de esos campos se van modificando conforme se va desarrollando el trabajo (p.e.: tiempo estimado de finalización, problemas surgidos durante la realización, fecha fin de proyecto, etc.).

En dicha tabla (trabajos) crean y modifican varios administradores. Mis preguntas son:

Se puede conocer ¿qué administrador ha modificado por ejemplo el registro 97 correspondiente a un proyecto de viabilidad? ¿Cuántas modificaciones ha tenido dicho registro? ¿Quién o quienes lo han hecho y que campos han modificado concretamente cada uno?

Muchas gracias.

Saludos

URL del sitio: Contenido solo visible a usuarios registrados

Citar
Respondido : 11/09/2012 11:01 am
Pablo Velasco
 Pablo Velasco
Illustrious Member

Hola,

Todo depende de cómo se estén realizando estos cambios. Si se hacen desde una web o alguna aplicación (no directamente desde la base de datos) lo que se podría hacer sería crear una tabla que sirviera de log de cambios de forma que cada vez que se ejecutase alguna consulta de inserción, modificación o eliminación quede registrado en esta nueva tabla. De esta forma, se podrían consultar en la tabla todos los movimientos realizados.

Para hacer esto, suponiendo que utilizas alguna función para ejecutar las consultas sql, tendrías que modificar la función para agregar los registros al log.

En el caso de que los cambios los hicierais directamente en la base de datos, entonces el único sistema para recoger los cambios realizados sería mediante la creación de triggers (disparadores), de forma que estén configurados para que cuando se modifica un registro de una tabla se ejecuta una determinada acción.

Puedes ver algo más de información sobre lo triggers en MySQL en el siguiente enlace:

http://dev.mysql.com/doc/refman/5.0/es/triggers.html

ResponderCitar
Respondido : 11/09/2012 12:34 pm

José López
 José López
Usuario experto

Gracias Pablo por tu respuesta. Los cambios se hacen desde la web. ¿Me podrías especificar un poco más el cómo hacerlo? O si hay alguna documentación al respecto para mirarla.

Muchas gracias.

Saludos

ResponderCitar
Respondido : 11/09/2012 12:47 pm
Pablo Velasco
 Pablo Velasco
Illustrious Member

Hola,

El tema de introducir los datos en el log requeriría entrar en multitud de temas de programación. Como verás en la cabecera del foro:

No ofrecemos soporte a webs alojadas en localhost ni soporte css o programación.

Como pauta a seguir te recomiendo que revises el código de tu web en busca de sitio donde se ejecuten consultas sql. Si llaman a una función (lo lógico sería eso) tendrías que localizar la función y realizar los cambios para que se inserten los datos que quieras en el log cuando la consulta es un INSERT, UPDATE o DELETE.

ResponderCitar
Respondido : 11/09/2012 1:30 pm

wpdoctor-revisa-la-salud-de-tu-wordpress

José López
 José López
Usuario experto

Ok. Me pondré a investigar al respecto. Gracias por la ayuda.

Saludos

ResponderCitar
Respondido : 11/09/2012 4:05 pm