私は、10 の星評価システムを備えた Web サイトに取り組んでいます。すべての評価は tbl_rating に保存され、次の属性があります。
id
heading
description
rating (number of stars, 1 to 10)
shop_id (each rating belongs to a shop - my site is a catalog of shops)
私の質問は、ショップの平均評価をカウントする最良の方法は何ですか (基本的に、特定の shop_id を持つすべての評価を合計し、それらの評価の数で割るだけで済みます)。すべてのショップには、値を保存できる avg_rating 列もあります。
この統計を 1 時間ごとにカウントするように MySql データベースに指示する方法はありますか? 新しい評価が送信されるたびに、またはショップ属性 avg_rating が照会されるたびに、それをカウントする必要がありますか? データベースにこれを自動的に行うように指示する方法はありますか、またはこれらのアクションを PHP から実行する必要がありますか? PHP、Yii フレームワーク、および MySQL データベースを使用しています。
助けてくれてありがとう。