Forum: Sortierung der Themen nach Beitraegen

SPatrick

Grünschnabel
Hallo Community,

ich habe ein ganz einfaches Forum, in dem ich derzeit meine Themen nach Erstellungsdatum des Themas sortiere.

Ich moechte jetzt allerdings die Themen, so wie es in der Regel bei jedem anderen Forum auch der Fall ist, nicht nach ihren eigenen Erstellungsdatum sortieren sondern nach dem jeweiligen letzten Beitrag, der im Thema geschrieben wurde. Versteht ihr, was ich meine? Bestimmt! :)

So sieht mein SELECT im Moment aus:
Code:
SELECT id, erstellungsDatum, thema FROM forumBeitrag WHERE active = 1 AND parentId = 0 AND kategorieId = 1 ORDER BY erstellungsDatum DESC

Jetzt ist es so, dass Themen und Antworten in ein und derselben Tabelle (forumBeitrag) sind. Themen sind durch parentId = 0 gekennzeichnet und Antworten haben in dieser Spalte die jeweilige Id des Themas.

Habt ihr eine Idee, wie ich den SELECT so umgestalten koennte, dass ich die Informationen erhalte, wie oben beschrieben?

Danke fuer eure Tipps!

Patrick
 
Am besten speicherst du dazu den Erstellungszeitpunkt des letzten Beitrags direkt im Datensatz des Themas.
 
Was ist daran unsauber? Solange dafür Sorge getragen wird, dass dieser Wert aktuell ist, ist dies die effizienteste Herangehensweise. Denn andernfalls müsste bei jeder Abfrage sämtliche Datensätze der Tabelle „beiträge“ sortiert, nach „themen“ gruppiert, ein Join mit der Tabellen „themen“ gemacht und die dadurch erhaltenen Datensätze ebenfalls wieder sortiert werden.
 
Dann wäre in deinem Fall ja auch „erstellungsDatum“ redundant, da diese Information aus dem Datensatz des ersten Beitrags geholt werden könnte.
 
erstellungsDatum bezieht sich auf den jeweiligen Beitrag bzw. Thema, nicht aufs Elternthema..
zuletztBearbeitetDatum ist eben die letzte Aenderung am Beitrag bzw. Thema - je nachdem. Also keineswegs redundant.
 
Zurück