ich habe in php ein forum geschrieben. es funktioniert auch schon perfekt. nun habe ich auch eine anzeige eingebaut, die auf den threat seiten bei jedem user der gepostet hat auch die anzahl seiner posts zeigt.
nun wolte ich fragen ob es Schlauer ist, immer beim anzeigen der threads die bisherigen posts gezählt werden
(alle posts sind in einer tabelle;; dann zb WHERE user = ‘1’ oder so.)
oder ob man immer wenn einer einen post schreibt in der user tabelle ein wert um eins hochgezählt wird.
sprich; sollen die posts immer wieder neu gezählt werden oder einfach ausgelesen werden.
was ist schlauer? wenn man die zählmethode benutzt, kann es dann sein das bei mehreren tausend posts die seite langsam lädt oder gar abstürzt?
kann mich jemand aufklären und vielleicht auch sagen, wie das in anderen foren gelöst wird?
Schneller ist def. die Methode mit einer eig. Tabelle, da würde sich eine Art “temp_vars” anbieten, die in einem bestimmten Intervall neu syncronisiert wird, damit die Daten auch stimmen ;(
die empfehlung für die vorgehensweise hängt von der verwendeten datenbank bzw. auch von der verwendeten datenbankengine ab. angenommen du verwendest mysql, was ich auf grund deines beispielcodes annehme, dann stehst du zB. vor der wahl des tabellentreibers.
benutzt du MyISAM, so ist jedes mal ein COUNT(*) … WHERE userid = 1; am besten beraten, bei InnoDB ist dies etwas anders; da wäre eventuell ein eigener counter sinnvoller - das jedoch erst bei 100 000 und mehr posts.