怎么获取收藏数
我想获取一篇文章的收藏数量,所以我写了以下代码:
$favCount = DB::table('user_articles_fav')->where('article_id',$article->id)->count();
这样可以获取到,但是是不是太费IO了,有更优的写法吗?
我想了一下,给article_id加了索引,另外还有一个办法,就是每次加收藏的时候,数据库加一个字段然后改变那个字段,之后的都来读取那一个字段的数值,那种更好一点?
关于 LearnKu
其实访问量不大的话, 新建一个关联关系,然后用 withCount 即可,方便简单。 (就是和你说的第一种方法差不多)。
第二种也是一个常规的办法,如果想减少数据量查询的话。可以用这个办法。
还有就是你可以将访问量缓存到Redis或者其他地方。然后在Redis中查找,这样会块很多
你完全可以给 article 加个
fav_count字段,有收藏就 +1 ,取消就 -1 。像这种不重要的数据,直接存redis