文章的点赞、收藏功能一张表可以么?

方案一:
一张文章表,含有点赞数字段,收藏数字段
当用户点赞时,点赞字段+1
当用户收藏时,收藏字段+1

方案二:
文章表、点赞表、收藏表
当用户点赞时,点赞表插入用户id、文章id
当用户收藏时,收藏表插入用户id、文章id

用哪种方案好?

阅读 5.8k
2 个回答

两种方案融合一下

用户对文章操作表
序号用户ID文章ID是否点赞是否收藏
14242110
文章表
序号文章ID被点赞数被收藏数
12142442

用户浏览文章21时,查询用户对该文章的操作表,得到其是否对该文章点过赞,收藏过,并查询文章表得到文章的被点赞数和被收藏数。

如果想做类似于知乎的那种,“您的好友xxx也赞过该回答”,联表查就完事了
多一个字段其实多不了太多空间占用的,没有必要一个表两种数据行,点赞数据行和收藏数据行,两个字段分记录收藏和点赞情况更好处理。

**方案一:完全可行,因为点赞收藏数等一系列的记录只是记录值,字段用简单的数据类型,比如int,对性能和查询来说都是最优的
比如方案2,如果一个页面上显示,点赞和收藏数你就需要查询3个表,这样不是更麻烦

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题