Php Laravel中like的数据库结构

Php Laravel中like的数据库结构,php,mysql,laravel,Php,Mysql,Laravel,我是新来拉威尔的,我想在我的网站上有喜欢的按钮 我的帖子表: post_id | body | created_at like_id | user_id | post_id | timestamp 我喜欢的桌子: post_id | body | created_at like_id | user_id | post_id | timestamp 问题:

我是新来拉威尔的,我想在我的网站上有喜欢的按钮

我的帖子表:

    post_id    |    body    |    created_at
    like_id    |   user_id  |     post_id    | timestamp
我喜欢的桌子:

    post_id    |    body    |    created_at
    like_id    |   user_id  |     post_id    | timestamp

问题:

    post_id    |    body    |    created_at
    like_id    |   user_id  |     post_id    | timestamp
1-如何计算Laravel中的喜好

2-我的数据库结构是否正确


3-我将拥有声誉(如stackoverflow),我是否应该将该重新发布保存在用户表中的一个字段中,或者它具有不同的结构?

我也会将总的相似计数添加到post表中。如果不添加它,则需要始终执行sum()查询,这可能会给数据库带来太多的负载(取决于站点访问量等)

您可以在用户表中保存信誉。不过,您可能需要添加类似于like表的内容。用户当然想知道为什么他们获得了更多的声誉

  • 您可以使用Laravel使用
    count()
    方法计算结果。对于 统计表中所有喜欢项的示例:

    // Eloquent + Query Builder
    $likes = Likes::all()->count();
    
    // Query Builder
    $likes = DB::table('likes')->count();
    
  • 你可能想看看这个

  • 你展示的两张桌子的结构看起来不错。要考虑的是,当用户或帖子被删除时,相应的喜好应该发生什么(<代码>删除…<代码>)

  • 您可以将信誉字段放入
    user
    表中,但方法更简洁 要做到这一点,就要为外国公司的声誉创建单独的表格 用户ID的密钥


  • “你是说名誉吗?”卢卡斯盖特:哦,是的reputation@lukasgeiter你能回答这个问题吗?非常感谢你的回答