Я работаю над веб-сайтом с 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 framework и базу данных MySQL.
Спасибо за любую помощь.
cron
для запускаphp
скрипта каждый час, который его вычисляет. - person chriz   schedule 09.04.2013