Mailinglisten-Archive |
Hallo Andreas, > Die Update-Query würde dann in etwa so aussehen: > UPDATE table AS t1 SET ranking = (SELECT COUNT(*) FROM table AS t2 > WHERE t2.score >= t1.score) jupp da liegst du richtig mit einer kleinen Einschränkung: du musst es nur für das konkrte Spiel neu berechnen und ein weiterer Schlüssel muss her der gleiche Scores in eine Reihenfolge bringt. Können mehrer User das selbe Ranking haben weil gleicher Score muss noch ein "Count(distinct score)" rein. Die Frage der Last ist schlicht wie oft das Ranking abgefragt werden muss. Wenn du z.B. im Layout rechts eine Box machen willst "Meine Top 5 Spiele" dann wäre es mühsam das jedesmal neu zu berechnen. Wenn du im Profil des Users dessen Spiele-Ranking anzeigen willst muss man die Frage beantworten wie oft das Profil aufgerufen wird. Kann es nur der User aufrufen kann dann reicht der Ansatz es live zu berechnen. Ist es aber öffentlich dann werden schon mehr Leute einen User aklicken und dann wird öffters live berechnet. Eine pauschale Aussage hier zu treffen ist schwer. Ich weiss nur das man wenn man die Werte einmal hat viele spätere Ideen direkt umsetzen kann (siehe Idee mit Top Box oben). Gruß, Andreas
php::bar PHP Wiki - Listenarchive