网站“关注”功能如何实现?

发布于 2022-09-01 12:37:27 字数 100 浏览 20 评论 0

比如知乎、segmentfault等网站的关注功能,点击关注按钮后,有关这个问题的后续答案会通知给你,当你下次打开页面的时候,会有数字提示你关注的内人有更新,这个功能是如何实现的呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

千柳 2022-09-08 12:37:27

这个问题太大,但有一点可以告诉你,你看到的信息都是冗余后的非一致性信息。换句话说,这些信息是源信息的副本。

佼人 2022-09-08 12:37:27

问题表,用户表,问题用户关系表 关联一下就是了

拥抱我好吗 2022-09-08 12:37:27

首先,可以了解下关系型数据库。

月棠 2022-09-08 12:37:27

这个是数据库方面的设计,比如问题表(question)中的字段有:id(编号), title(问题名称), content(问题内容), tips(关键词), follower(关注者)等等。follower字段中的数据存储,可以是各种的格式,只要把每个用户的userid隔开就行,比如这样存储: 1,3,5,8,12,表示userid为1, 3, 5, 8, 12的用户有在关注这个问题,若用户取消关注时,再把这个userid去掉;好像这样存储不是很好删哈,那换成这样存储呢:[1, 2, 3, 4],把数据当做一个数组进行存储。

还有回答列表(answer),这个列表中的外键是问题表中的id。

还有用户表(user),每个用户有一个notice的字段,这个字段可以是个int类型的,默认是0,当有一个通知时就+1。

当问题的描述发生了更新,或者有人回答了这个问题,那么查询问题表(question)的follower字段中所有的用户id,查出后,再按照用户id更新用户表(user)中的notice字段。下次当用户登录时,就查询这个notice字段是否为0,若为0表示没有通知,否则就显示通知的个数。

当然,实际中的数据库设计肯定更加的复杂,我这儿只是简单的说下原理而已。

旧故 2022-09-08 12:37:27

问题表里面设一个关注人的字段,里面可以用json_encode或者serialize保存关注人的用户ID。有人回答了该问题,程序就读取关注人字段,根据每一个用户ID插入一条消息通知记录到消息表,这样就能通过查询消息表提醒关注用户问题有更新。不过这样做的话,如果关注的人很多,一旦问题有更新,那么要插入消息表的记录就很多,不知道还有什么更好的实现方法。

滿滿的愛 2022-09-08 12:37:27

user_id可以直接设置为json的格式呀

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文