Best Practice für ein MySQL-Datenversionssystem

Ich muss Daten wie Artikel in einer MySQL-Datenbank speichern. Wenn ein Artikel geändert wird, muss ich auch die alte Version speichern, damit er wiederhergestellt werden kann. Ich habe einige ähnliche Fragen und Beiträge zu diesem Thema gefunden, bin mir jedoch nicht sicher, welche Lösung das Problem am besten löst.

Hier ist die Basistabelle "Artikel" zum besseren Verständnis:

Artikel (ID, Name, Text)

Hierfür gibt es für mich zwei unterschiedliche Ansätze:

Ansatz 1

Speichern Sie die Daten und jede Version eines Artikels in der Tabelle "Artikel" und fügen Sie die Spalten "Version" und "Status" hinzu. In der Version speichere ich die inkrementierte Versionsnummer des Artikels. Der aktive Artikel erhält den "Status" 1 und die anderen den "Status" 2.

Pro's:

Es wird nur ein Tisch benötigt

Eine neue Version ist eine Einfügung der neuen Daten und nur eine Aktualisierung der "Status" -Spalte der alten

Con's

Sehr große Tabellen (möglicherweise langsamere Abfragen ???)Ansatz 2

Fügen Sie das Feld "Version" zu "Artikel" hinzu und speichern Sie nur die aktiven Daten in der Tabelle "Artikel". Alte Versionen der Daten werden gespeichert / in die neue Tabelle "articles_versioned" verschoben.

Pro's:

In der Tabelle "Artikel" stehen nur die aktuell gültigen Daten

Con's

Veröffentlichung von Tabellen

So. Habe ich einen guten Ansatz vergessen? Wie gehe ich mit verwandten Daten in anderen Tabellen (wie Bildern usw.) um?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage