Neue Beiträge in einem Forum erkennen |
Ehemaliges Mitglied (#378)
Quasselstrippe Threadstarter
Beiträge: 282 |
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
|
 Profil
Editieren
Zitieren
|
progrookie
Fachidiot
Beiträge: 127 |
meine Idee wäre, manage das ganze Ding über Cookie's...
---
|
 Profil
E-Mail
Website
Editieren
Zitieren
|
Ehemaliges Mitglied (#378)
Quasselstrippe Threadstarter
Beiträge: 282 |
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
|
 Profil
Editieren
Zitieren
|
Philipp Gérard
Foren-Team
Beiträge: 1502 |
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: 1502 |
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
|
Ehemaliges Mitglied (#378)
Quasselstrippe Threadstarter
Beiträge: 282 |
Für jeden Thread einen Cookie?!
Grübelnde Grüße
Mondschatten
|
 Profil
Editieren
Zitieren
|
flipflop
Otto-Normal-Poster
Beiträge: 62 |
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
|
Ehemaliges Mitglied (#378)
Quasselstrippe Threadstarter
Beiträge: 282 |
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
|
 Profil
Editieren
Zitieren
|
Philipp Gérard
Foren-Team
Beiträge: 1502 |
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
|
Ehemaliges Mitglied (#378)
Quasselstrippe Threadstarter
Beiträge: 282 |
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
|
 Profil
Editieren
Zitieren
|