Historia zmian danych z tabelami kontroli: zmiany grupowania

Powiedzmy, że chcę przechowywać użytkowników i grupy w bazie danych MySQL. Mają relację n: m. Aby śledzić wszystkie zmiany, każda tabela ma tabelę audytu user_journal, group_journal i user_group_journal. Wyzwalacze MySQL kopiują bieżący rekord do tabeli kroniki w każdym INSERT lub UPDATE (DELETES nie są obsługiwane, ponieważ potrzebowałbym informacji, które użytkownik aplikacji usunął rekord - więc jest flagaactive który zostanie ustawiony na0 zamiast usunięcia).

Moje pytanie / problem to: Zakładając, że dodam 10 użytkowników do grupy naraz. Kiedy później klikam historię tej grupy w interfejsie użytkownika aplikacji, chcę zobaczyć dodawanie tych 10 użytkowników jakojeden krok a nie jako 10 niezależnych kroków.Czy istnieje dobre rozwiązanie grupowania takich zmian razem? Może jest możliwe, aby licznik był zwiększany za każdym razem, gdy wyzwalany jest spust ...? Nigdy nie pracowałem z wyzwalaczami.

Najlepszym rozwiązaniem byłoby zebranie wszystkich zmian dokonanych w ramach transakcji. Gdy więc użytkownik zaktualizuje nazwę grupy i doda 10 użytkowników w jednym kroku (jedno wywołanie kontrolera formularza), byłby to jeden krok w historii. Może możliwe jest zdefiniowanie losowego skrótu lub zwiększenie globalnego licznika przy każdym uruchomieniu transakcji i dostęp do tej wartości w wyzwalaczu?

Nie chcę, aby projekt tabeli był bardziej złożony niż posiadanie jednej tabeli dziennika dla każdej „prawdziwej” tabeli. Nie chcę dodawać skrótu transakcji do każdej tabeli bazy danych (co oznacza „rzeczywiste” tabele, a nie tabele kontroli - oczywiście byłoby dobrze). Chciałbym również mieć rozwiązanie w bazie danych - nie w aplikacji.

questionAnswers(2)

yourAnswerToTheQuestion