次のような MySQL テーブルがあるとします。
ソフトウェア表:
id int
name text
votes int
rating int
投票は誰かがそのアイテムに投票した回数であり、評価はそれらの投票の平均です。
サンプルデータ:
id: 0
name: FooBar!
votes: 5
rating: 3
別のユーザーがやってきて、これを 1 と評価しました。新しい評価はどのように計算すればよいですか? 別のテーブルを作成し、誰かが投票するたびに新しい行を入力する方が良いでしょう
id int
software_id int
score int
user_id int
毎回平均評価を再計算しますか?サーバーに負荷がかかると思います。
2 番目の質問:
ソフトウェアを最高評価で注文できるようにしたいのですが、平均 5 つ星評価のプログラムではなく、平均 4 つ星 893 票のプログラムよりも 1 票しか高く評価されたくないのです。どうすればこれを達成できますか?