Verwirklichung von "Beitrag (un-)gelesen" eines selbstprogrammierten Forum´s

PCFreund

Grünschnabel
Hallo,

ich habe mich hier angemeldet, weil ich jemanden suche der mir 'nen Tipp geben kann, wie ich die Funktion "Beitrag (un-)gelesen" in einem selbstprogrammiertem Forum verwirklichen kann. Das ist mein erstes Forum´s-Projekt, daher weiß ich noch nicht wie ich es machens soll.

Wenn ich sage, beim Thread-Erstellen soll einer Spalte einer Datenbank ein Text hinzugefügt werden und das bei 10000 Usern wird das Thread-Erstellen ersichtlich lange dauern.
Wenn ich jedoch sage, beim Lesen eines Thread´s soll einer Spalte einer Datenbank ein Text hinzugefügt werden und das bei 10000 Usern wird das Thread-Lesen ersichtlich lange dauern.

Etwas anderes als diese beiden Möglichkeiten ist mir nicht eingefallen, weswegen ich hier frage. Wie machen es andere Forum á la phpBB oder vBulletin?

Liebe Grüße,
Kevin Holly
 
Hi und Willkommen bei tutorials.de :)

Eine perfekte Lösung wird es nicht geben.
Wie es vBulletin zB. hier macht, weiß ich leider nicht.
Wird ziemlich komplex sein und von den Entwicklern auch nicht jedem verraten werden.

Die simpelste Lösung wäre zu speichern, wann ein User das letzte Mal online war.
Wenn er jetzt wieder auf die Seite kommt, alles als ungelesen abzeigen, was zwischen seinem letzten Besuch und jetzt gekommen ist.
Vorteil: Einfach, belastet die DB nicht
Nachteil: Wenn er wieder offline geht muss man alles als gelesen betrachten, auch wenn er es nicht hat.
Aber zumindest sieht er immer, was neu ist.

Andere Lösung: Für Jedes Thema exakt speichern, welche User es schon gelesen haben.
Ist ungefähr dein Gedanke.
Vorteil: Für den Benutzer perfekt.
Nachteil: Für den Server Horror. Performancetod. Zumindest ab einer gewissen Beitrags-/Benutzeranzahl.

Da die Benutzeranzahl deines Forums aber vermutlich nicht gleich in die Hunderttausend gehen wird, könnte man einen relativ einfachen Kompromiss aus den beiden Extremen machen.
zB. Für die jeweils letzten 7 Tage alles genau speichern und alles älter als 7 Tage automatisch als gelesen annehmen.

Gruß
 
Zuletzt bearbeitet:
Hallo sheel,

danke für deine schnelle Antwort. Wie du geschrieben hast "Für die jeweils letzten 7 Tage alles genau speichern und alles älter als 7 Tage automatscih als gelesen annehmen." hört sich toll an. Werde es mal so versuchen. Falls es halt User gibt die eine andere Idee haben, nur her damit. Zurzeit ist halt diese die einzigste Lösung.

Liebe Grüße und danke,
PCFreund
 
Ich habe sowas auch schon mal gemacht.
Du könntest eine neue Tabelle erstellen(sofern du mit MySQL programmierst),
wo immer wenn ein User den Beitrag gelesen hat,
in eine spalte die Id des Eintrages und in eine Andere die Id des Users(sofern jeder User eine Id hat) einträgt.

So wenn ein User jetzt online geht zeigt deine Seite nur die Einträge an,
die nicht in der Tabelle stehen.
Somit werden immer nur die ungelesen Einträge angezeigt.

Hoffe, dass ich dir helfen konnte.
 
Auf das ist der Threadersteller auch ohne Hilfe schon gekommen...erster Post.
und warum das nicht so optimal ist, kann men dem nächsten Post entnehmen.
 
Zurück