globe: MySQL: m:n Beziehung mit Sortierung und Limit (-> Historie)

Beitrag lesen

n'abend,

Wenn einer von euch eine Idee hat, wie man dieses Problem besser angehen kann, wäre ich um einen krzen Post oder eine E-Mail sehr Dankbar. Ich kann auch gerne Demodaten zur verfügung stellen, auch wenn ihr euch mit http://www.generatedata.com/ selbst sehr einfach selbst welche erzeugen könnt.

Wenn ich explizit eine Historie haben möchte, lege ich dazu meistens eine eigene (separate) Tabelle an. Ich mache das, weil die "schalen Daten", die ich für mein »Daily Business« eigentlich nicht brauche nicht betrachten muss.

In deinem Fall hat ein Benutzer zu einem Zeitpunkt immer nur einen Status. Warum diesen also nicht als Attribut des Benutzers angeben? Bei Änderungen würdest du dann die alten Daten in die Historie schreiben.

Um aus einer Menge von ("versionierten") Datensätzen die aktuellen herauszufinden, bietet sich eine korrelierende Subquery an:

SELECT s.*  
FROM userstatus s  
WHERE s.id = (  
  SELECT MAX(i.id)  
  FROM userstatus i  
  WHERE i.userid = s.userid  
);

(ID-Attribut genommen, weil fortlaufender PrimaryKey. tstamp wäre auch möglich)

weiterhin schönen abend...

--
Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|