新浪微博中的关注功能是如何设计表结构的?

发布于 2022-09-04 12:52:47 字数 71 浏览 16 评论 0

新浪微博中,假如a关注了200个用户,300个用户关注了a,点解的时候会看到所有关注a或者a关注的用户,这种表结构是如何实现的?

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

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

发布评论

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

评论(1

丢了幸福的猪 2022-09-11 12:52:47

个人简单猜测,如有雷同,纯属巧合!有错误请指正!

user_relation - 用户关系表
user_id - 用户ID
follower_id - 被关注者用户ID
relation_type - 关系类型,1=关注 2=粉丝

业务逻辑处理

1 用户A关注了用户B

插入两条记录

insert user_relation(user_id,follower_id,relation_type) values(a_id,b_id,1);//增加一个关注的人
insert user_relation(user_id,follower_id,relation_type) values(b_id,a_id,2);//增加一个粉丝

2 查用户A关注的所有用户

select * from user_relation where user_id=a_id and relation_type=1

3 查用户A有多少粉丝

select * from user_relation where user_id=a_id and relation_type=2

4,5等等逻辑以此类推。。。。

设计理由

考虑到扩展性,数据量大了必定分库分表,一般按user_id取模等等算法拆分,所以没办法用follower_id查询出所有关注我的人(粉丝)。

当然如果不要扩展性或数据很小,那两个字段正着查所有我关注的人,反着查所有的关注我的人(粉丝)

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