Ungelesene Beiträge - eigene Board Software

MsvP@habdichliebhasi

Erfahrenes Mitglied
Hallo zusammen,

ich nutze jetzt bereits seit einigen Jahren eine eigene programmierte Board Software. Diese klappt auch wunderbar, wurde aber langsam etwas angestaubt, deswegen habe ich mich entschieden den Code etwas abzuspecken und das ganze einwenig zu modernisieren.

Soweit so gut, funktioniert auch alles ohne Probleme.

Ich habe allerdings ebenfalls begonnen, das Board um einige Funktionen zu bereichern. Unter anderem eine Funktion, die ungelesene Beiträge hervorhebt.

Jetzt habe ich mir verschiedene Lösungsansätze überlegt, allerdings sind diese alle sehr DB intensiv.

Der Beste Lösungsansatz aus meiner Sicht wäre momentan dieser:

Wenn ein User das Forum aufruft, würde ich in der DB nachschauen lassen ob seine UserID und die des Beitrags vorhanden ist, wenn nicht, dann soll der Beitrag markiert dargstellt werden.

Sobald ein User einen Beitrag öffnet, wird seine USER_ID und die Beitrags_ID oder die letzte AntwortID in eine DB gespeichert.


Das Problem, welches ich dabei sehe, sind die imensen DB Einträge die auftreten werden, wenn für jeden User und Beitrag ein Eintrag in der DB entsteht.
Aber mir fällt kein elleganterer Weg ein.

Lg
Micha
 
Zuletzt bearbeitet:
Speichere lieber nur diejenigen, die noch nicht gelesen wurden. Anderenfalls wächst die Anzahl der Datensätze proportional zur Anzahl der Beiträge und Benutzer.
 
VIelen Dank für die Antwort.

Allerdings müsste ich dann beim Erstellen eines neuen Beitrags für jeden User einen Eintrag in die DB machen.

Wäre das nicht viel zu rechen intensiv?

Lg
Micha
 
Nein, das ist nicht nötig. Speichere einfach den Zeitpunkt, an dem alle Beiträge zuletzt gelesen waren, und zähle nur alle diejenigen Beiträge als nicht gelesen, die seit diesem Zeitpunkt hinzukamen.
 
Aber ich muss doch für jeden Beitrag abfragen, ob der User ihn gelesen hat. Das hat mit dem Zeitpunkt ja nur bedingt etwas zu tun.

Ich kann ja einen Beitrag von heute Morgen lesen, den von gestern aber noch nicht.

In sofern muss ich ja genau erfassen, was der User wann angeschaut hat, oder auch nicht.

Das heißt sobald jemand einen neuen Beitrag schreibt, müsste ich jetzt für jeden User einen "nicht gelesen" Eintrag in die DB schreiben, der dann gelöscht wird, sobald der User ihn anklickt, oder?

Lg
Micha
 
Ich werde es jetzt wie folgt machen, außer jemand schreit noch dazwischen und stoppt mich. ;-)

Wenn jemand einen Beitrag in den letzten zwei Wochen nicht gelesen hat wird er als ungelesen markiert.
Sobald er den Beitrag anklickt, speichere ich einen Hinweis in die DB, dass er den Beitrag gelesen hat zusätzlich lösche ich alle Einträge, die älter als zwei Wochen sind aus der DB. Somit wird die DB nicht überfüllt und es gibt nur Einträge für wirklich aktive User.

Lg
Micha
 

Neue Beiträge

Zurück