首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL能自动更新数量字段吗?

问MySQL能自动更新数量字段吗?
EN

Stack Overflow用户
提问于 2014-08-21 02:59:02
回答 1查看 167关注 0票数 0

我正在创建一个使用Laravel和MySQL的网站。我有两个MySQL表:帖子和评论。在注释表中,我使用一个名为post_id的外键来引用注释属于哪个帖子。现在,我想记录属于每个帖子的评论数量,我有两个解决方案:

a)。在posts表中添加一个number_of_comments字段;

b)。使用Select ()*计算数量。

对于解决方案a,我不知道MySQL是否能够在每次创建/删除注释或多个注释时自动更新posts表中的quantity字段。自动地说,我的意思是MySQL会根据表的关系自动计算数量;

对于解决方案b,我想知道如何才能执行MySQL orderBy指令,比如按其注释的数量对post进行排序。

哪种解决方案更适合考虑编写更少的代码和更好的性能?

请原谅我是MySQL noobie,任何建议都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-29 13:47:43

Laravel没有使用MySQL触发器,而是提供了一种更方便的方法(据我所知)来实现这一点:模型事件,它处理诸如创建/创建、更新/更新、保存/保存、删除/删除和恢复/还原等事件。所以我的评论模型现在看起来是:

代码语言:javascript
复制
class Comment extends Eloquent {
    protected $table = 'comments';
    // Model boot method, the place to register model event bindings
    public static function boot() {
        parent::boot();
        Comment::deleted(function($post) {
            $post = $comment->post;
            $post->num_comments -= 1;
            $post->save();
        });
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25417599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档