I'm trying to rate Types of Fruit by the best possible rating given by users.
I have a Fruit table called Ratings just for submitting ratings with the following Information
Fruit_id int
From_ID int
Rating int
now I'm trying to run a SQL command like the following
select From_ID, AVG(Rating) AS Rating FROM Ratings Group BY `Fruit_ID` ORDER by Rating DESC
This works however, if i get 1 user who rates a fruit an apple a 5, and then 1000 users who rate an orange a 4 the apple is suddenly considered better.
How can i take number of votes into account, to ensure that the most voted along with best is first.
Why not just select the number of votes and display that to the user. So yes, 1 vote of 5 for an apple would be an overall 5 BUT with only 1 vote. This would give the users a simple way to see how "popular" a given rating is.
This is how most of the fivestar rating systems work on the net today if I am not mistaken.
Good luck!
Nick