Ответы пользователя по тегу MySQL
  • Какой вариант логики запросов правилен?

    Powerhead
    @Powerhead
    По-моему, второй вариант предпочтительней. Он полностью избавит от головной боли в будущем, когда количество данных может увеличиться. Эффективней тратить вычислительные ресурсы в моменты, возникающие реже — в данном случае, добавление/удаление комментариев происходит значительно реже, чем их просмотр.
    Реализовать эту логику можно с помощью mysql триггеров, которые будут автоматически обновлять число комментариев при каждом добавлении/удалении

    CREATE TRIGGER `comment_add` AFTER INSERT ON `post_comments`
    FOR EACH ROW BEGIN
    SET @post_id = NEW.post_id;
    SET @comments_num = (SELECT COUNT(id) FROM post_comments WHERE post_id = @post_id);
    UPDATE `post` SET `comments_num` = @comments_num WHERE `id` = @post_id;
    END;


    Полный дамп тут
    Ответ написан
    3 комментария