Datenänderungsverlauf mit Prüftabellen: Änderungen gruppieren

Nehmen wir an, ich möchte Benutzer und Gruppen in einer MySQL-Datenbank speichern. Sie haben eine Beziehung n: m. Um alle Änderungen im Auge zu behalten, verfügt jede Tabelle über eine Prüftabelle user_journal, group_journal und user_group_journal. MySQL-Trigger kopieren den aktuellen Datensatz bei jedem INSERT oder UPDATE in die Journaltabelle (DELETES werden nicht unterstützt, da ich die Information benötige, welcher Anwendungsbenutzer den Datensatz gelöscht hat - daher gibt es ein Flagactive das wird eingestellt auf0 anstelle einer Löschung).

Meine Frage / Problem ist: Angenommen, ich füge 10 Benutzer gleichzeitig zu einer Gruppe hinzu. Wenn ich später in der Benutzeroberfläche der Anwendung durch den Verlauf dieser Gruppe klicke, möchte ich das Hinzufügen dieser 10 Benutzer als sehenein Schritt und nicht als 10 unabhängige Schritte.Gibt es eine gute Lösung, um solche Änderungen zusammenzufassen? Vielleicht ist es möglich, einen Zähler zu haben, der jedes Mal erhöht wird, wenn der Auslöser ... ausgelöst wird? Ich habe noch nie mit Triggern gearbeitet.

Die beste Lösung wäre, alle innerhalb einer Transaktion vorgenommenen Änderungen zusammenzufassen. Wenn der Benutzer den Namen der Gruppe aktualisiert und 10 Benutzer in einem Schritt hinzufügt (ein Formularsteuerungsaufruf), ist dies ein Schritt im Verlauf. Vielleicht ist es möglich, bei jedem Start einer Transaktion einen zufälligen Hash zu definieren oder einen globalen Zähler zu erhöhen und auf diesen Wert im Trigger zuzugreifen?

Ich möchte das Tabellendesign nicht komplexer gestalten, als eine Journaltabelle für jede "echte" Tabelle zu haben. Ich möchte nicht jeder Datenbanktabelle einen Transaktions-Hash hinzufügen (dh den "echten" Tabellen, nicht den Prüftabellen - da wäre es natürlich in Ordnung). Auch ich hätte gerne eine Lösung in der Datenbank - nicht in der Anwendung.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage