私のようなレストランの評価を保存するMySQLのテーブルがあります。Mysql:レストランの平均格付けなどのデータを扱う最良の方法?
id | user_id | res_id | rating_value | review_id |
1 | 102 | 5567 | 4.0 | 26 |
2 | 106 | 5543 | 3.5 | 27 |
3 | 112 | 5567 | 3.0 | 31 |
と私はユーザーによるレストランの'average rating'
のような「データ」を示し、各レストランのRestaurant Profile webpage
を持っています。
ユーザーは確認できます&レストランは1日あたりの料金を限られた回数で評価するため、1人のレストランでは1人のユーザーだけが1日あたり多くの新しい評価行を受け取ることがあります。
私の質問は:
は、私は、これはメモリの多くを消費するレストランの格付け」を更新するために、各レストランの
SELECT AVG(rating_value)
に毎日(?または毎週)cronジョブを実行すべきか?Xの最近の「評価」の数をそのまま維持し、cronjobを
SELECT AVG(rating_value)
に各レストランごとに毎日使うのはどうですか?
3.Or新しい「評価」が提出されたとき、私は唯一のSELECT AVG(rating_value)
を実行する必要がありますか?