19-06-2007, 08:26 PM
En fait tout dépend du type de classement a mettre en oeuvre...
Si il doit être à jour en temps réel, il n'y a qu'une seule solution, c'est la requête... Celà dit, ne t'inquiète pas pour les ORDER BY, c'est effectué très rapidement par les SGBD. Au pire, tu perdra 1 ou 2 centièmes de secondes par millier d'utilisateur!
Si tes stats sont générées 1 ou 2 fois par jour, le mieux est de stocker le résultat de la requête en BD (une table cache par exemple, contenant un champ blob ou text) ou dans un fichier (moi j'utilise ce système pour la gestion de mon interface multilangues). Ce fichier ou cette mise en cache est régénéré dès qu'un de tes joueurs demande la page de stats et que la date d'expiration des stats précédentes a été atteinte. Dans le cas contraire, on retourne la valeur du cache de la BD ou on fait un include du fichier généré précédemment.
Si c'est pas clair, fait moi signe, je te ferai un petit dessin :p
Si il doit être à jour en temps réel, il n'y a qu'une seule solution, c'est la requête... Celà dit, ne t'inquiète pas pour les ORDER BY, c'est effectué très rapidement par les SGBD. Au pire, tu perdra 1 ou 2 centièmes de secondes par millier d'utilisateur!
Si tes stats sont générées 1 ou 2 fois par jour, le mieux est de stocker le résultat de la requête en BD (une table cache par exemple, contenant un champ blob ou text) ou dans un fichier (moi j'utilise ce système pour la gestion de mon interface multilangues). Ce fichier ou cette mise en cache est régénéré dès qu'un de tes joueurs demande la page de stats et que la date d'expiration des stats précédentes a été atteinte. Dans le cas contraire, on retourne la valeur du cache de la BD ou on fait un include du fichier généré précédemment.
Si c'est pas clair, fait moi signe, je te ferai un petit dessin :p