我正在开发一个拥有 10 星评级系统的网站。所有评级都存储在 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,我可以在其中存储值。
有没有办法告诉 MySql 数据库每小时统计一次这个统计数据?我应该在每个新提交的评分之后甚至每次查询商店属性 avg_rating 时都计算它吗?有什么方法可以告诉数据库自动执行此操作,还是我必须从 PHP 运行这些操作?我正在使用 PHP、Yii 框架和 MySQL 数据库。
谢谢你的帮助。