Lösungsansatz ... Forum, nicht gelesene Themen seit letztem Besuch

Sebastianus

Erfahrenes Mitglied
Bitte keinen Vorschlag wie "Nimm doch ein freies Forum" ;) - da ist keine Option!

Wie würdest ihr es realisieren, dass einem Besucher eines Forum, wie hier bei Tutorials.de, alle Themen mit z.B. einem bunten T markiert werden, bei denen, seit dem letzten Besuch neue Einträge vorgenommen wurden.

Es sollte jedoch auch nicht geschehen, dass, wenn z.B: bei 10 Themen/Foren neue Einträge vorhanden sind, diese 10 auch dann noch markiert sind, wennich sie in der aktuellen Sitzung gelesen habe!

Welche Daten würder ihr dafür mitspeichern (bei den Foren, bei den Themen, für den Benutzer) und wie würdet ihr Abfragen in der DB verknüpfen, bzw. welche Daten, besonders bei Berücksichtigung der Performance, würde ihr wie verarbeiten?
 
Auch wenn es das Thema bereits häufig gab: Du musst dir überlegen, welche Daten notwendig sind, um diese Information herauszufinden. Da wäre erst einmal der Zeitpunkt der letzten Aktivität des Benutzers. Anhand dieses Zeitpunkts lässt sich ermitteln, welche Beiträge und Themen neu sind. (Dies ist natürlich nur dann notwendig, wenn der Benutzer die Website auch wieder besucht.) Doch wie sollten diese Beiträge und Themen gespeichert oder gemerkt werden? Eine Möglichkeit wäre, alle als neu ermittelten Beiträge in einer Tabelle zu speichern. Wenn ein Beitrag oder Thema vom Benutzer gesichtet wurde, werden die entsprechenden Datensätze aus der Datenbank entfernt.
Am Schluss solltest du noch dafür sorgen, dass die Größe der Tabelle nicht unendlich wächst, weil der Benutzer sich beispielsweise manche Themen gar nicht ansieht. Dafür bieten viele Foren eine Alle-Beiträge-als-gelesen-markieren-Funktion, die in diesem Fall alle verbliebenen Datensätze aus der Noch-nicht-gelesene-Beiträge-Datenbank entfernt. Auch könntest du ein Zeitlimit (beispielsweise eine Woche) setzen, nachdem Themen automatisch als gelesen markiert also entfernt werden, um die Größe der Datenbank gering zu halten.
 
Zurück