J'essaie de trouver une approche pour un projet, où un utilisateur peut modifier des enregistrements et être en mesure de voir les versions antérieures de ces enregistrements. Voici un exemple de schéma simplifié, à l'aide d'une 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
);
Ainsi, un utilisateur peut entrer et apporter plusieurs modifications à la liste (c.-à-d. Ajouter ou supprimer des tâches, réorganiser des tâches, marquer certaines comme terminées, renommer certaines, etc.), puis les enregistrer. À ce stade, j'aimerais générer une «version 2» de la liste et des tâches, et leur permettre de visualiser les versions précédentes, mais lorsqu'ils accèdent à la liste, obtenez toujours la dernière version.
Existe-t-il un modèle d'approche / de conception commun pour gérer les données de version de cette manière dans une base de données MySQL?