Hallo zusammen
Für eine Semesterarbeit schreibe ich ein Forum in PHP.
In der DB benutze ich dreiTabellen:
1 für die Foren (forum)
1 für die Themen (thema)
1 für die Beiträge (beitrag)
Ich möchte nun bei der Auflistung der Foren anzeigen, wann der
letzte Beitrag in diesem Forum gepostet wurde:
Beispiel für Forum mit id=1:
[COLOR=blue]
SELECT MAX(UNIX_TIMESTAMP(datum))
FROM beitrag
WHERE thema IN
(SELECT id FROM thema WHERE forum=1)
[/COLOR]
Bei einigen hundert Datensätzen läuft das noch einigermassen
performant ab. Bei >100'000 wird es langsam mühsam.
Eine Idee wäre, bei den Themen ein Datenfeld "datum_letzter_beitrag"
einzufügen und zu aktualisieren, wenn ein Beitrag gepostet wurde.
Scheint mir aber nicht sehr elegant.
Hat jemand eine bessere Idee?
Für eine Semesterarbeit schreibe ich ein Forum in PHP.
In der DB benutze ich dreiTabellen:
1 für die Foren (forum)
1 für die Themen (thema)
1 für die Beiträge (beitrag)
Ich möchte nun bei der Auflistung der Foren anzeigen, wann der
letzte Beitrag in diesem Forum gepostet wurde:
Beispiel für Forum mit id=1:
[COLOR=blue]
SELECT MAX(UNIX_TIMESTAMP(datum))
FROM beitrag
WHERE thema IN
(SELECT id FROM thema WHERE forum=1)
[/COLOR]
Bei einigen hundert Datensätzen läuft das noch einigermassen
performant ab. Bei >100'000 wird es langsam mühsam.
Eine Idee wäre, bei den Themen ein Datenfeld "datum_letzter_beitrag"
einzufügen und zu aktualisieren, wenn ein Beitrag gepostet wurde.
Scheint mir aber nicht sehr elegant.
Hat jemand eine bessere Idee?
Kommentar