製品データベースに適したソート アルゴリズムを取得しようとしています。ユーザーは、0 から 5 までのスコアを使用して製品に投票できます (2.5 のように 0.5 スコアも可能です)。私のテーブル構造は現在次のようになっています。
[ProductID] [Title] ... [NumberOfVotes] [TotalPoints] [FinalScore]
ユーザーが投票するたびに、(TotalPoints / NumberOfVotes) = FinalScore のような非常に単純な式を使用して最終スコアを計算しています。
次に、FinalScore と NumberOfVotes でテーブルを並べ替えます。
これは機能しますが、5 つ星の投票が 1 つしかない製品は簡単にトップ ランキングに入る可能性があるため、正確には公平ではありません。
私は統計やアルゴリズムを使って公正な製品ランキングを得るのが苦手です。現在使用している方法よりも公平で、比較的実装が簡単な式を探しています。
これはどのように行うことができますか?