Нужна помощь формирование статистики объектов в категории

danneo

Честный
Регистрация
13 Ноя 2007
Сообщения
1.526
Реакции
121
Есть объект, который добавил пользователь либо админ в БД. У объекта есть 2-а статуса: активность (отображение) и модерация.
Нужно менять статистику кол-ва объектов в категориях, к которым отнесен объект. В стату нужно учитывать модерацию объекта и его активность. Чтобы в стату учитывался объект, он должен быть активен и модерация пройдена (act=1, moder =1).
Например, пользователь меняет активность (включает), тогда нужно получить все родительские категории объекта и уменьшить стату на 1. Если Объект редактировался, то он идет на модерацию. А значит нужно стату менять.
Это сделать сделал. Но еще проблема в том, что при редактировании объекта пользователь может поменять категорию. Поэтому нужно еще и это учесть. Если изменил, то нужно сначала уменьшить статистику на 1, а потом взять новую категорию, всех ее родителей и у всех увеличить на 1.
Может есть что-то проще, без подсчета на MySQL ( типа, COUNT(*) и т.д.)? Ведь в движках как-то делают...
Кто понял, подскажите, пожалуйста.
 
Последнее редактирование:
Ну, если я правильно понял...

Я бы делал так.
Если пользователь поменял категорию, я бы выдернул бы из базы статистику всех родительских категорий относительно той ,которая была сначала, запихал бы в массив, сделал бы i--;
и потом UPDATE.

Далее выдернул бы все родительские категории, той категории, на которую пользователь поменял.
Опять таки, выдернул бы статистику -> в массив -> i++; -> UPDATE;
 
Ну, если я правильно понял...

Я бы делал так.
Если пользователь поменял категорию, я бы выдернул бы из базы статистику всех родительских категорий относительно той ,которая была сначала, запихал бы в массив, сделал бы i--;
и потом UPDATE.

Далее выдернул бы все родительские категории, той категории, на которую пользователь поменял.
Опять таки, выдернул бы статистику -> в массив -> i++; -> UPDATE;
ну типа этого я и пробовал делать. А насколько это разумно, нагрузка БД?
Вспомнил... точно такое же есть на всех форумах - показывает сколько сообщений в каждой теме. Как там реализовано, кто знает?
 
Сначала SELECT * message_table WHERE forum_theme=some_current_theme;
потом посмотреть Для просмотра ссылки Войди или Зарегистрируйся
мне кажется это немного не то. Если выводиться список разделов, например, 50 штук. Не станешь же делать 50 запросов, чтобы узнать кол-во тем в каждом разделе. Это подойдет для одного раздела.
 
Назад
Сверху