Historial de cambios de datos con tablas de auditoría: cambios de agrupación

Digamos que quiero almacenar usuarios y grupos en una base de datos MySQL. Tienen una relación n: m. Para realizar un seguimiento de todos los cambios, cada tabla tiene una tabla de auditoría user_journal, group_journal y user_group_journal. Los activadores de MySQL copian el registro actual a la tabla de diario en cada INSERT o UPDATE (no se admiten los borrados, porque necesitaría la información del usuario de la aplicación que eliminó el registro, por lo que hay una marcaactive que se establecerá en0 en lugar de una eliminación).

Mi pregunta / problema es: Suponiendo que estoy agregando 10 usuarios a un grupo a la vez. Cuando luego haga clic en el historial de ese grupo en la interfaz de usuario de la aplicación, quiero ver la adición de esos 10 usuarios comoUn paso Y no como 10 pasos independientes.¿Hay una buena solución para agrupar tales cambios juntos? Tal vez es posible tener un contador que se incrementa cada vez que se dispara el disparador? Nunca he trabajado con disparadores.

La mejor solución sería reunir todos los cambios realizados dentro de una transacción. Entonces, cuando el usuario actualiza el nombre del grupo y agrega 10 usuarios en un solo paso (llamada de un controlador de forma), este sería un paso en el historial. ¿Quizás es posible definir un hash aleatorio o incrementar un contador global cada vez que se inicia una transacción y acceder a este valor en el activador?

No quiero que el diseño de la tabla sea más complejo que tener una tabla de diario para cada tabla "real". No quiero agregar un hash de transacción en cada tabla de la base de datos (es decir, las tablas "reales", no las tablas de auditoría, por supuesto que estaría bien). También me gustaría tener una solución en la base de datos, no en la aplicación.

Respuestas a la pregunta(2)

Su respuesta a la pregunta