Shin: elegante Lösung für Tabellen mit Spaltenversionen

Beitrag lesen

Hallo,

ich arbeite mit mySQL und suche nach einer eleganten Lösung um folgendes Problem zu lösen:

Ich habe eine Art "Objekt" es besitzt eine unbekannte Anzahl an Attributen (in PHP kann man einfach neue definieren). Jedes Attribut repräsentiert eine Spalte eines Tabellen Eintrags. Die Attribute ändern sich aber und bei einer Änderung soll nicht die Spalte geändert werden sondern beide Informationen verfügbar sein und es soll herausfindbarsein, wann die Änderung enstand und welche Werte vorher und nacher drin standen.

Momentan mache ich es so:

page
 id
 (ggf andere feste Spalten)

page_ext
 page_id
 date
 name
 value

Jedes Attribut wird so also als ein Eintrag behandelt in der page_ext und der Page zugeordnet. Name ist der Name des Attribut und value der Inhalt. Wenn der Inhalt sich ändert, wird ein neuer Eintrag gemacht, der anhand des Datums als neuere Version erkannt wird. Ich sehe das nicht als effizieteste Lösung an, weiß jemand wie man so ein Problem "normalerweise" löst?

mfg
Shin