ey.
man koennte ein nach bedarf inverses system bauen...
ein schlechter zorgleser und anderer spast hat jenes ungelesene posts. das ist auch gut so, dann muss nur wenig gewaelzt werden, wenn man die anzahl posts zaehlen will etc.
wie waere es aber, wenn jeder user ein flag haette, das eine inverse speicherung ermoeglicht? d.h. es wird gespeichert, welche posts er noch nicht gelesen hat - am besten mit vollautomatischer umstellung, wenn man das erste mal auf "mark all as read" klickt. das wuerde nebenbei fuer die aktiven user die ganze restliche forumsberechnung beschleunigen.
also ich würds db-mässig allgemein auf unread-posts (nicht wie jetzt read-posts) umstellen und dann einfach alle posts, die ein user seit einem monat nicht gelesen hat auch aus der unread-posts table nehmen. weil der kommt 1. sowieso selten oder gar nicht mehr auf die page und wird 2. ganz sicher nicht zig hundert posts lesen, weil die noch markiert sind.
wir können das ja so einrichten, dass der eintrag nur für user gemacht wird, die den lastlogin in den letzten 3 monaten hatten. dann sinds nämlich keine 80 users mehr.
Also ich find das nicht soo kompliziert.
Wenn ein User das Flag gesetzt hat und das Lastlogin-Date > 3 Mnt, dann werden die Unread Posts geloggt (egal mit welcher Variante).
Damit können wir die Tabelle klein halten.
datt ist klar. aber bikos vorschlag dazu ist nicht schlecht, und es macht auch weniger arbeit als pro post 30000 posts durchzuackern (und auf irgendeine art und weise macht das die db). wuerde ich auf jeden fall behaupten.
das waere auch eine idee, aeltere posts braucht wohl keiner.
aber dann waere es doch schneller, wenn man die unread posts speichern wuerde, oder?
so ne datenbank kann schliesslich keine unterschiede wie hunderte zu 30000 ausgleichen...
vor allem brauchts weniger speicherplatz, wenn man die unread posts speichern. aber wir speichern im moment die read_posts (!!!). kein wunder hat die table 75MB und ist ständig am wachsen.
ja klar. aber der speicherplatz ist ja eigentlich auch nicht unser primaeres problem (bis darauf, dass das zeuch sicherlich recht haeufig im ram liegt...). waere halt ein netter nebeneffekt.