зачем поля.
создаем таблицу типо
CREATE TABLE `count_prod` (
`id` int(11) NOT NULL auto_increment,
`count` int(11) NOT NULL DEFAULT 0,
`category_id` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`)
) TYPE=MyISAM;
Далее тригер:
TRIGGER oc.`tr_product_insert`
AFTER INSERT
ON oc.product
FOR EACH ROW
BEGIN
update count_prod
set count = count+1
where category_id = NEW.category_id;
END
Функция
public function getCountProd($catid) {
$sql='select cp.count from count_prod cp
where cp.category_id=(int)$catid';
return $query($sql)
}
Предположим что всё это абстрактный язык, можно улучшить, оптимизировать, кэшировать и написать без ошибок. Но суть понятна я думаю.
Тригер на создание новой категории и удаление. Тригер на продукт и его удаление.
Ну эт на простой пример, в ос сторе надо учесть неск параметров, но тригер написать можно
Выгодно будет, даже если овер много категорий, чем подсчёт 10к, хотя как знать конечно)