首页 > 类似segmentfault的关注问题是怎么实现的

类似segmentfault的关注问题是怎么实现的

用户点击关注问题后,按钮变为已关注。以后用户再看这个问题都显示为已关注,请问从前端到后台数据库,整个过程是如何实现的。
我的后台用的是Java。


每个用户跟每个问题之间有一个关系表来记录它们之间的联系。是否关注肯定也是一个字段来记录。


其实只要把模型设计好就容易实现了。

简单概括就是 用户提问 的“多对多”关联关系。

这里简单介绍要用到的表及与此业务逻辑相关的字段:

用户表:
id — 用户ID

提问表:
id — 提问ID

关注表:
user_id — 用户ID
problem_id — 用户关注的提问ID

假设你的用户id为101,提问id为547

当你选择关注的提问的时候,到这个关注表中增加一条记录:(101,547)

当你进入这个id为547的提问页面时,查询一下关注表中是否有(101,547)这样的记录。如果存在,则把页面显示为已关注,如果不存在就显示“关注”按钮,让用户可以选择关注。


这种东西一般不建议直接使用数据库记录,可以使用Redis来记录,当然最终数据可以保存到数据库中。

-- 被关注文章增加关注数
$ INCR article:#articleId:follows
-- 关注的用户关注过的文章(ID)集合
$ SADD user:#userId:follows #articleId
【热门文章】
【热门文章】