怎么获取收藏数

我想获取一篇文章的收藏数量,所以我写了以下代码:

$favCount = DB::table('user_articles_fav')->where('article_id',$article->id)->count();

这样可以获取到,但是是不是太费IO了,有更优的写法吗?

我想了一下,给article_id加了索引,另外还有一个办法,就是每次加收藏的时候,数据库加一个字段然后改变那个字段,之后的都来读取那一个字段的数值,那种更好一点?

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 3
Epona

其实访问量不大的话, 新建一个关联关系,然后用 withCount 即可,方便简单。 (就是和你说的第一种方法差不多)。

第二种也是一个常规的办法,如果想减少数据量查询的话。可以用这个办法。

还有就是你可以将访问量缓存到Redis或者其他地方。然后在Redis中查找,这样会块很多

4年前 评论

你完全可以给 article 加个 fav_count 字段,有收藏就 +1 ,取消就 -1 。

4年前 评论
wongvio (楼主) 4年前

像这种不重要的数据,直接存redis

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!