Histórico de alterações de dados com tabelas de auditoria: agrupando alterações

Vamos dizer que eu quero armazenar usuários e grupos em um banco de dados MySQL. Eles têm uma relação n: m. Para acompanhar todas as alterações, cada tabela possui uma tabela de auditoria user_journal, group_journal e user_group_journal. Os triggers do MySQL copiam o registro atual para a tabela de periódicos em cada INSERT ou UPDATE (DELETES não são suportados, porque eu precisaria da informação que o usuário do aplicativo deletou do registro - então há um sinalizadoractive que será definido para0 em vez de uma exclusão).

Minha pergunta / problema é: Supondo que estou adicionando 10 usuários em um grupo de uma só vez. Quando mais tarde eu clicar no histórico desse grupo na interface do usuário do aplicativo, quero ver a adição desses 10 usuários comoum passo e não como 10 etapas independentes.Existe uma boa solução para agrupar essas mudanças? Talvez seja possível ter um contador que é incrementado cada vez que o gatilho é ... acionado? Eu nunca trabalhei com gatilhos.

A melhor solução seria reunir todas as alterações feitas em uma transação. Portanto, quando o usuário atualiza o nome do grupo e adiciona 10 usuários em uma etapa (uma chamada de controlador de formulário), isso seria uma etapa no histórico. Talvez seja possível definir um hash aleatório ou incrementar um contador global cada vez que uma transação é iniciada e acessar esse valor no acionador?

Eu não quero tornar o design da tabela mais complexo do que ter uma tabela de diário para cada tabela "real". Eu não quero adicionar um hash de transação em cada tabela de banco de dados (ou seja, as tabelas "reais", não as tabelas de auditoria - lá, tudo bem, claro). Também gostaria de ter uma solução no banco de dados - não no aplicativo.