Ich habe ein Nachrichtensystem, in dem Sie Nachrichten mit 1 bis 5 Sternen bewerten können. In der Datenbank speichere ich die Anzahl, die Summe und die absolute Bewertung als int bis 100 (für html-Ausgabe, also 5 Sterne wären 100, 1 Stern wäre 20 Prozent. Jetzt habe ich drei Toplisten: Beste Bewertung Meist gesehen Meist kommentiert
Die letzten beiden sind einfach, aber die erste ist etwas knifflig. Bevor ich das Ding übernommen habe, war es ein großes Durcheinander, und sie haben einfach die 5 am besten bewerteten Nachrichten dort platziert. Wenn es also eine Nachricht gibt, die mit 4,995 Punkten bewertet wurde und 100k Stimmen hat, und eine andere mit 5 Sternen und 1 Stimme, dann steht die "besser bewertete" Nachricht oben, auch wenn das natürlich lächerlich ist. Für den ersten Moment habe ich die Liste begrenzt, so dass nur Nachrichten mit einer bestimmten Anzahl von Stimmen (wie 10 oder 20) in der Liste sein können.
Aber ich mag das nicht wirklich. Gibt es eine nette Methode, um diese Dinge mit der Zählung zu "gewichten" oder so etwas in der Art?