Задать вопрос
@akula22

Как правильно при добавление комментария сделать +1 в поле новостей?

Есть модуль новости и модуль комментарии, как правильнее при добавление коммента добавлять +1 к полю в таблице новостей, а при удаление коммента делать -1,
для этого можно использовать события? Я с ними никогда не сталкивался, может есть пример реализации где посмотреть?
Комментарии не привязаны к новостям, они могут быть и в фотографиях, в видео
  • Вопрос задан
  • 157 просмотров
Подписаться 1 Оценить Комментировать
Ответ пользователя Владимир Коровин К ответам на вопрос (3)
vakorovin
@vakorovin
Разработчик
Сомнительная затея хранить дополнительно количество и постоянно заниматься синхронизацией реального количества с этим полем. Но. Если уж решили, что нужно - поступите проще, решите эту задачу средствами самой базы данных, благо они уже давно это умеют сами. 3 триггера на таблицу comments (insert, update, delete). И обновляйте поле количество в нужной таблице. И не нужно тогда привязываться к фреймворку, мало ли кто еще и откуда обновит эти таблицы. Как ориентир:
CREATE TRIGGER `insert_comment` AFTER INSERT ON `comments` FOR EACH ROW
BEGIN
  IF (NEW.material_type = 'post') THEN
    UPDATE posts SET comments_count = (SELECT COUNT(id) FROM comments WHERE material_id = NEW.material_id AND material_type = NEW.material_type) WHERE id = NEW.material_id;
  END IF;
END;
Ответ написан