![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Developerzy Postów: 823 Pomógł: 12 Dołączył: 18.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Zacząłem się zastanawiać, jak rozwiązać rankingi. W różnych serwisach stosowałem różne strategie. Posiadam kolumnę item_rate (średnią) oraz item_rate_votes (ilość oddanych głosów). Defaultowo używałem ORDER item_rating DESC, item_rating_votes DESC (co jest kompletną paranoją i mijaniem się z celem, bo ilość głosów liczy się tylko i tylko wtedy, gdy rating jest identyczny). Dwa warunki, które już stosowałem: Aby dostać się do rankingu, musisz mieć X głosów Zastosowane na lookme.pl w limicie 50 głosów. Minus: jak już się ma te 1000 głosów (czyli ponad 950 nad warunek), wystarczy, że średnia spadnie o 0.01 i już się wylatuje z rankingu. Czyli ilość głosów nie ma znaczenia (minus, bo niesprawiedliwe). Mnożnik (ranga) Algorytm wygląda prosto. Nie sortujemy wyników po kolumnie item_rate tylko obliczamy: SELECT ( item_rate + ((item_rate * item_rate_count) / 10) ) AS item_position Praktycznie same plusy. Minus: musimy określić dzielnik, który może okazać się mało precyzyjny (w tym przypadku 10). Jak rozwiązujecie problem rankingów? -------------------- Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 411 Pomógł: 35 Dołączył: 27.06.2004 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Bardziej niż z PHP zagadnienie związane raczej jest ze statystyką. Zobacz sobie jak robi to np IMDB (opis na dole strony). Prawdopodobnie jest to najbardziej sprawiedliwy sposób.
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Developerzy Postów: 823 Pomógł: 12 Dołączył: 18.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Nie rozumiem tylko literki C we wzorze. Czy ma to być średnia wszystkich średnich, czy średnia wszystkich średnich zawartej już w top tabeli.
-------------------- Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 411 Pomógł: 35 Dołączył: 27.06.2004 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
To pierwsze: średnia wszystkich ocen.
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 01:42 |