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

Тема в разделе "Как сделать...", создана пользователем danneo, 18 янв 2014.

  1. danneo

    danneo Честный

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

    Samael Создатель

    Регистр.:
    21 янв 2013
    Сообщения:
    19
    Симпатии:
    2
    Ну, если я правильно понял...

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

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

    danneo Честный

    Регистр.:
    13 ноя 2007
    Сообщения:
    1.418
    Симпатии:
    109
    ну типа этого я и пробовал делать. А насколько это разумно, нагрузка БД?
    Вспомнил... точно такое же есть на всех форумах - показывает сколько сообщений в каждой теме. Как там реализовано, кто знает?
     
  4. Samael

    Samael Создатель

    Регистр.:
    21 янв 2013
    Сообщения:
    19
    Симпатии:
    2
  5. danneo

    danneo Честный

    Регистр.:
    13 ноя 2007
    Сообщения:
    1.418
    Симпатии:
    109
    мне кажется это немного не то. Если выводиться список разделов, например, 50 штук. Не станешь же делать 50 запросов, чтобы узнать кол-во тем в каждом разделе. Это подойдет для одного раздела.