怎么获取收藏数

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

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

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

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

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 3
Epona

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

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

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

4年前 评论

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

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

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

4年前 评论

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