Moin!
Achja und nächstes Problem
Wie schon andere vor mir gesagt haben: Die Bequemlichkeit beim Programmieren kostet dann beim Ausführen womöglich Rechenzeit. Nehmen wir einfach an, die Hauptlast liegt auf der Ausgabe der aktuellen Daten, dann ist es sehr von Vorteil, wenn die Datenbank nicht in einem Gesamtarchiv kramen muss um nachzusehen, welche Version der Daten nun die aktuelle ist. Du hast als Kind Dein Lieblingsspielzeug auch nicht eine Kiste getan, in der es mit tausend anderen Sachen zusammen lag sondern für dessen Aufbewahrung einen speziellen Platz gewählt damit Du es schnell greifen kannst.
Wenn also Schreiben/Ändern gegenüber dem Abruf des aktuellen Zustandes selten vorkommt, dann solltest Du die Daten fein säuberlich trennen und mit einer Archiv-Tabelle arbeiten um einfach die Last auf dem Server gering zu halten. Das kann sich anders darstellen, wenn z.B. bei einem Versionsverwaltungs-System die Anzahl der schreibenden Änderungen/Vergleiche überwiegt oder derjenigen der nur lesenden Zugriffe sehr nahe kommt - was genau Du gerade programmierst hast Du - trotz Nachfrage - immer noch nicht geschrieben, das ist aber von Interesse um die Last abschätzen zu können.
Bei einem solchen System kann es nämlich sogar von Interesse sein die Änderungen zur Vorversion (-> siehe: diff) oder einer Delta-Kodierung zu speichern - um die Datenmenge gering zu halten
Auch bei einer Ein-Tabellen-Variante kommst Du mit einer Abfrage übrigens eher nicht hin. Du müsstest, wenn du die Idee verfolgst, den aktuell anzuzeigenden Datensatz markieren - alle anderen erst als ungültig kennzeichnen. Das sind schon zwei Updates - und beide sind mit einer Indexierung verbunden.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix