Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » Neue Beiträge in einem Forum erkennen Antworten
Neue Beiträge in einem Forum erkennen

Mondschatten
Quasselstrippe


Beiträge: 238


Ihr Lieben,

im Moment betreibe ich Denksport und suche nach der günstigsten Möglichkeit, in einem Forum die seit dem letzten Besuch neu geposteten Beiträge (oder die Threads mit neuen Beiträgen) zu kennzeichnen.

Mir fällt ein, dass man einfach jeden Thread anleuchten könnte, der jünger ist als das letzte Logout des Nutzers. Dann bleiben die Threads aber bis zum nächsten Logout immer erleuchtet - und einzeln gelesene Threads verlieren auch nicht ihre Neumarkierung. Schlecht also.

Man könnte die Ids neuer Threads jedem Nutzer in ein entsprechendes Feld seines Datensatzes schreiben, so dass dann beim nächsten Besuch alle Threads, die in diesem Feld enthalten sind, als neu markiert werden. Das würde aber dazu führen, dass bei jedem neuen Posting die gesamte Nutzerdatenbank abgeklappert werden müsste und jedem Nutzer (außer dem Verfasser des Postings) der Thread als neu eingetragen werden müsste. Nutzer, die im Forum gar nicht aktiv sind, haben dann nach einem halben Jahr einen solchen Klumpen von Datensatz, dass die Datenbank zu dieser Seite umkippt. ;)

Welche Ideen habt Ihr?

Viele Grüße
Mondschatten

---
Schwarz kann auch glänzen.

  Profil   Website   Editieren   Zitieren

progrookie
Fachidiot


Beiträge: 120


meine Idee wäre, manage das ganze Ding über Cookie's...

---

  Profil   E-Mail   Website   Editieren   Zitieren

Mondschatten
Quasselstrippe


Beiträge: 238


Hallo progrookie,

was soll ich im Cookie speichern? Die Zeit des letzten Ausloggens? Das nützt mir nichts, die habe ich bereits in der Datenbank.

Liebe Grüsse
Mondschatten

---
Schwarz kann auch glänzen.

  Profil   Website   Editieren   Zitieren

Philipp Gérard
Foren-Team


Beiträge: 1508


Es gibt dazu verschiedene Überlegungen und alle haben Nachteile, die jedoch sehr unterschiedlicher Natur sind. Ein großes Forensystem wie z.B. das vB bietet die Möglichkeit, zu wählen, was man will: Cookies, Datenbank oder gar nichts. Cookies sind ungenau aber recht einfach zu implementieren, schaden der Performanz nicht und brauchen keinen Speicherplatz. Das ganze über eine Datenbank zu regeln (user_id, thread_id, lastvisit_timestamp) ist zwar 100% genau, verbraucht aber vor allem bei größeren Foren (10k+ Benutzer) mit vielen Beiträgen und Themen enorm viel Platz und schadet der Gesamtperformance. Ab einem gewissen Punkt steht man also vor der Wahl: Neuen Server anschaffen (bzw. den Datenbankserver auslagern) oder auf Cookies umsteigen. In deinem Fall glaube ich aber, sind solche Sorgen noch nicht angebracht. Spiel einfach mal rum, aber implementiere deine Lösung so, dass du sie leicht vom DB-System auf das Cookie-System umstellen kannst.

Grüße,
Philipp

---
Arbeit ist das Feuer der Gestaltung. - Marx

  Profil   E-Mail   Website   Editieren   Zitieren

Philipp Gérard
Foren-Team


Beiträge: 1508


Mondschatten schrieb am 12.05.2006 14:57was soll ich im Cookie speichern? Die Zeit des letzten Ausloggens? Das nützt mir nichts, die habe ich bereits in der Datenbank.


Den letzten Seitenaufruf (bei jedem Seitenaufruf zu überschreiben).

1:
... WHERE lastposting_timestamp >= cookie_timestamp


---
Arbeit ist das Feuer der Gestaltung. - Marx

  Profil   E-Mail   Website   Editieren   Zitieren

Mondschatten
Quasselstrippe


Beiträge: 238


Für jeden Thread einen Cookie?!

Grübelnde Grüße
Mondschatten

---
Schwarz kann auch glänzen.

  Profil   Website   Editieren   Zitieren

flipflop
Otto-Normal-Poster


Beiträge: 63


Nein, einen Cookie mit dem letzten Seitenaufruf....

dann beim Besuch der Seite markiere alle die neuer sind als der Wert im Cookie

---
http://alles-ausser-banane.de/

  Profil   Website   Editieren   Zitieren

Mondschatten
Quasselstrippe


Beiträge: 238


Hallo flipflop,

das bringt mich nicht weiter... Wie soll ich dann die Neu-Marke bei jenen zehn Beiträgen verschwinden lassen, die mit den anderen zwanzig als neu gekennzeichnet waren, aber nach dem Einloggen dann gelesen wurden? Und wie soll ich eine Neu-Marke erscheinen lassen bei jenen Einträgen, die während des Eingeloggt-seins geschrieben werden?

Viele Grüße
Mondschatten



---
Schwarz kann auch glänzen.

  Profil   Website   Editieren   Zitieren

Philipp Gérard
Foren-Team


Beiträge: 1508


Gar nicht, das sind die Einschränkungen mit denen Du leben musst, wenn du auf die intensive Datenbankmethode verzichtest. Da Du anscheinend alles haben willst (oder Dir nicht darüber im Klaren bist, was das u.U. deinem Server antun wird ), musst Du o.g. Datenbankmethode verwenden und einprogrammieren.

---
Arbeit ist das Feuer der Gestaltung. - Marx

  Profil   E-Mail   Website   Editieren   Zitieren

Mondschatten
Quasselstrippe


Beiträge: 238


Okay... gut... Ich versteh' schon: Es gibt eine datenbankbelastende, schön aussehende und eine datenbankschonende, kompromissfordernde Variante. Für welche man sich entscheidet, ist wohl jedem selbst überlassen - aber immer mit allen positiven und negativen Konsequenzen.

Ich danke Euch allen für Eure Denkanstösse!

Liebe Grüße
Mondschatten


---
Schwarz kann auch glänzen.

  Profil   Website   Editieren   Zitieren
 

Antworten
Nach oben