我有存储餐厅收视率像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 |
,我有Restaurant Profile webpage
每个餐厅这说明“数据”像用户的餐厅'average rating'
。
用户可以评论&为有限次数的餐厅每天计算一次,因此单个餐馆每天/每天可能会收到许多新的评分行,仅由一名用户单独提供。
我的问题是:
我应该每天(?或每周)运行一个cronjob到每家餐馆更新餐馆的“评分”的
SELECT AVG(rating_value)
,这会消耗很多的内存?我应该只保留最近的'收视率'的X数量,并使用cronjob到
SELECT AVG(rating_value)
它每天为每家餐厅?
3.或者,当提交新的“评级”时,我应该只运行SELECT AVG(rating_value)
?