Calcul de la meilleur note

abdoulax Messages postés 874 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 - 12 déc. 2008 à 17:11
abdoulax Messages postés 874 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 - 13 déc. 2008 à 19:37
Mon problème est plus une question d'algorithme que de PHP. J'ai besoin de récupérer les 5 items les mieux noté d'un site. Mais comment avoir un bon résultat, par exemple un item peu avoir 500 note et une moyenne de 9/10 contre un autre item avec une note de 10/10 pour une seul note. Comment avoir en premier le premier item comme top 5?

Have Fun ...

3 réponses

toutoos Messages postés 56 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 17 octobre 2009
13 déc. 2008 à 15:49
C'est pas faute de pas vouloir mais la ... C'est soit tu classe en fonction des moyenne soit tu classe en fonction du nombre de vote mais pour prendre les deux en compte? C'est un critère bien trop difficile.
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
13 déc. 2008 à 16:26
Salut,

Il n'y a sans doute pas de recette universelle pour faire cela. C'est à toi de définir ce qui te semble être le "top 5". J'entends par là ce qui te semble être le plus représentatif. C'est à mon avis très spécifique au type d'items, ... et à bien d'autres critères, comme par exemple la fréquence de mise à jour de ce "top 5"; inutile d'espérer avoir un résultat fiable si tu dois le faire à chaque visite si ton nombre d'items est élevé.
J'ai été confronté au problème il y a peu, sur une "grosse" base de données de 500000 enregistrements. J'ai opté pour une mise à jour journalière (la nuit, quand tout le monde pieute) J'avais le choix entre produire un classement "top list" qui aurait été actualisé très régulièrement mais qui n'aurait au final rien représenté de concret, ou au contraire un classement intégrant des coefficients portants sur des critères issus d'une dizaine de champs de tables différentes.
Dans mon algo j'ai donc pris le parti d'intégrer des coefficients pour chaque critère. Certes cela demande beaucoup de ressources au serveur, mais l'ajustement est ainsi bien plus simple à réaliser, et rien n'empêche d'écrire en dur cette algo une fois qu'il est satisfaisant, afin d'alléger (très peu) le serveur.

Si je prends un exemple au pif issue d'une DB similaire :
Ratiot de visites depuis l'inscription => coef 1.4
nombre de visites => coef 2.0
nombre de votes => coef 2.5
date de dernière connexion => coef 1.2
nombre de photos => coef 1.1
nombre de commentaires négatifs => coef 0.7
etc ...

Une fois de plus, c'est très lourd au niveau calcul, et ce n'est pas actualisé en temps réel, mais les résultats sont très satisfaisants.
Reste bien sur à se prendre la tête pour mettre ça en forme en SQL / PHP.

Si quelqu'un a d'autres idées je suis preneur,

Kohntark -
0
abdoulax Messages postés 874 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 1
13 déc. 2008 à 19:37
merci pour toute vos reponse !!! Effectivement c'est assez dur de trouver une solution!! Pour ma part j'ai multiplier la note sur 10 par 0.33 puis arrondi, ce qui me donne soit 1, 2 ou 3. En suite je prends toutes les notes dont le calcul égal 3 et je les class par ordre de nombre de vote. Ce calcul me permet de faire le top 5 mais aussi de classer mes items lors des listing...

Voilà voilà,

Merci,

Have Fun ...
0
Rejoignez-nous