Ich versuche, einen Ansatz für ein Projekt zu finden, bei dem ein Benutzer Datensätze bearbeiten und frühere Versionen dieser Datensätze anzeigen kann. Hier ist ein vereinfachtes Beispielschema anhand einer Liste:
TABLE list (
id int auto_increment primary key,
user_id int,
title varchar(255)
);
TABLE list_tasks (
id int auto_increment primary key,
list_id int,
title varchar(255),
order int,
is_complete tinyint
);
Ein Benutzer kann also die Liste aufrufen und mehrere Änderungen vornehmen (z. B. Aufgaben hinzufügen oder entfernen, Aufgaben neu anordnen, Aufgaben als abgeschlossen markieren, Aufgaben umbenennen usw.) und diese dann speichern. Zu diesem Zeitpunkt möchte ich eine 'Version 2' der Liste und der Aufgaben generieren und sie in die Lage versetzen, frühere Versionen anzuzeigen. Wenn sie jedoch auf die Liste zugreifen, erhalten Sie immer die neueste Version.
Gibt es einen gemeinsamen Ansatz / Entwurfsmuster für den Umgang mit Versionsdaten auf diese Weise in einer MySQL-Datenbank?