#1
| ||||
| ||||
Datenbankbasierte Gelesen-Markierung - KonzeptHi, ich überlege gerade, wie ich zusätzlich zur Sitzungsbasierten "Gelesen Markierung" (es wird mit dem Timestamp des letzten Besuchs verglichen, tw. sehr ungenau) von Foren und Themen eine Datenbankbasierte Markierung (jeder gelesene Beitrag wird im unperformantesten Fall für jeden Benutzer in die DB geschrieben, sehr genaue Markierung möglich) möglichst performant umsetzen kann. vBulletin hat es auch noch nicht lange integriert und nun wollte ich auch, da es doch nervt, dauernd unzureichende Markierungen vorzufinden. Wer hat Ideen oder kennt Konzepte? Theoretisch könnte ich einfach gucken wie es zB das vB macht, aber ohne Quelltext...?! MfG MaMo __________________ Forensoftware mit integriertem CMS: Viscacha 0.8! |
#2
| |||
| |||
ich denke ich kann dir guten Gewissens (da es ja auch in der Admindemo zu sehen ist) die ACP Stelle zitieren Zitat:
am einfachsten dürfte es doch sein, den Cookie eben im Profil mitzuspeichern und bei Bedarf zurückzuschreiben, statt pro neuer Anmeldung bei 0 zu beginnen - wobei IMO bei phpBB(2) auch dort eine Grenze einbaut wurde, da der User sich ja auch mal 1 Jahr nicht sehen lassen kann, da wird die Menge an Beiträgen schnell gewaltig |
#3
| ||||
| ||||
Also, eigentlich gibt es ein sehr einfaches, aber dafür sehr Speicher intensive Variante. Du hast eine neue Tabelle mit userID, theadID und eben lastVisit, wo man einen Timestamp abspeichert. Das ist aber wie gesagt sehr Speicher intensiv bei vielen Mitgliedern und vielen Themen, da müsste man dann eben eine Zeit einführen wonach ein Thema automatisch als gelesen markiert ist, wenn dort die letzte aktuallierung war. Es gibt aber einige Methoden, das ist eine, die auch noch ein wenig ausgearbeitet werden muss. __________________ Karsten Achterrath Die Signatur befindet sich im Offlinemodus, bitte versuchen Sie es später wieder. |
#4
| ||||
| ||||
Hi, danke Titus für den Text vom vB. Den kenne ich schon, er ist leider zu oberflächlich. Mir geht es detaillierter um die technische Umsetzung bzw. Optimierung des speicherlastigen Wegs von Karsten bzw. mir (siehe oben). Den CH-Mod hab ich mir eben kurz mal angesehen, das hab ich nicht so ganz durchgefunden, leider. Weiß zufällig jemand, wo die interessanten Stellen dort sind? Ansonsten muss ich mir das auch mal eingebaut ansehen und nicht so EasyMod mäßig... MfG MaMo __________________ Forensoftware mit integriertem CMS: Viscacha 0.8! |
#5
| ||||
| ||||
Also eine andere zur ganzgenauen ist leider nicht wirklich bekannt, da man ja den User dem Thema zuordnen muss, und der letzte Besuch. Eine Methode wäre, das Themen die älter als 7 Tage aus der DAtenbank geöscht werden und automatisch als gelesen markiert gelten und man, wenn dort was neues kommt, die letzte aktivität denn beachtet und erst von da an wieder in die Datenbank aufnimmt. __________________ Karsten Achterrath Die Signatur befindet sich im Offlinemodus, bitte versuchen Sie es später wieder. |
#6
| ||||
| ||||
Wieso macht ihr es euch denn so schwer? Ich hatte das damals bei meiner Foren-Software folgendermaßen gelöst: Wenn der Benutzer das Forum aufruft, werden alle neuen Themen bzw. Beiträge seit seinem letzten Besuch aus der Datenbank geholt und in einer anderen Datenbanktabelle für diese Session (ich nenne jetzt sie mal session_newposts) gespeichert. D.h. session_newposts besitzt folgende Felder: sessionid postid Die Einträge in session_newposts werden dann entweder bei Aufruf der entsprechenden, neuen Beiträge oder nach dem Auslaufen der Session (d.h. nach einer Inaktivität von xx Minuten) gelöscht. Zusätzlich könnte man die Sessions mit der userid versehen, um dem Benutzer zu erlauben, die neuen Beiträge vom letzten Besuch wiederherzustellen. (Es ist sonst sehr ärgerlich, wenn man den Rechner mal für 15 Minuten verlässt und plötzlich alle neuen Beiträge weg sind...) Bei der Wiederherstellung der alten Session denke ich jetzt an eine Art Popup-Fenster, welches beim erneuten Besuch geöffnet wird. Man kann dem Benutzer natürlich auch die ständige Wiederherstellung der jeweils letzten Session erlauben, sodass ungelesene Beiträge erst dann als gelesen gelten, wenn er sie wirklich aufgerufen hat (oder sie explizit als "gelesen" markiert). Dies allerdings mit der Einschränkung, dass ungelesene Beiträge, die nach xx Tagen / Wochen / Monaten nicht aufgerufen wurden, automatisch wieder aus der Datenbank gelöscht werden. Um die Belastung der Datenbank so gering wie möglich zu halten, würde ich außerdem vorschlagen, dass wenn der Benutzer das Forum lange nicht besucht hat, bei seinem erneuten Besuch nicht alle neuen Beiträge aus der Datenbank geladen werden, sondern nur die der - sagen wir mal - letzten zwei Wochen. |
Stichworte |
- |
Themen-Optionen | |
Thema bewerten | |
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Konzept: Speichern von geparsten Beiträgen | Gérome | Entwicklung und Konzeption sozialer Software | 37 | 23.08.2005 21:32 |
Konzept Einfachheit = gut? | MrNase | Community Management, Administration und Moderation | 8 | 31.01.2004 17:27 |
"Related Topics" - nach welchem Konzept? | Gérome | Programmierung und Datenbanken | 8 | 29.01.2004 22:18 |