Mahlzeit,
Dazu hab ich in der Tabelle einfach ein Feld "version" (1, 2, 3, 4, ...). Bisher hat das auch funktioniert.
Sowas ähnliches habe ich hier auch gerade.
Es war aber recht langsam, jedesmal die aktuellste Version rauszusuchen.
Dafür ist immer ein ORDER BY oder verschachteltes SELECT nötigt, und so sind die Abfragen
viel umständlicher.
Ich weiß ja nicht, wie weit MySQL mittlerweile in dem Bereich ist, aber in Oracle kann ich z.B. relativ einfach mit Partitionen alle Seiten herausholen, die - bezogen auf ihre jeweilige "seitenid" - die höchste "version" haben:
SELECT MAX(s.version) OVER (PARTITION BY s.seitenid) AS max_version
, s.*
FROM seiten s
WHERE s.version = max_version
Wenn Du dann - wie Frank anmerkte - dafür sorgst, dass auf der Kombination von "seitenid" und "version" ein UNIQUE-Index liegt, und Du Dir einen INSERT-Trigger bastelst, der beim Neuanlegen eines Datensatzes immer die nächste freie Version für die jeweilige "seitenid" sucht und in den Datensatz schreibt, sollte das recht einfach und auch flott funktionieren.
Wie gesagt: gesetzt den Fall, MySQL kann so etwas schon (dafür bin ich dort zu lange raus - hab in der letzten Zeit nur Oracle gemacht).
MfG,
EKKi
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|