Sto cercando di trovare un approccio per un progetto, in cui un utente può modificare i record ed essere in grado di vedere le versioni precedenti di tali record. Ecco uno schema di esempio semplificato, che utilizza un elenco:
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
);
Quindi un utente può entrare e apportare diverse modifiche all'elenco (ad esempio, aggiungere o rimuovere attività, riordinare attività, contrassegnarne alcune complete, rinominare alcune, ecc.), quindi salvarle. A questo punto, mi piacerebbe generare una "versione 2" dell'elenco e delle attività e far sì che siano in grado di visualizzare le versioni precedenti, ma quando accedono all'elenco, ottengono sempre l'ultima versione.
Esiste un approccio / modello di progettazione comune per gestire i dati delle versioni in questo modo in un database MySQL?