素材牛
用户的关注表应该怎么设计?
 风停了点、灬  分类:SQL代码  人气:540  回帖:4  发布于9月前 收藏此帖(0)

比如某个人关注了20个人 在数据库中怎样设计这个表呢 每个用户都有一个关注表吗?这个表中存的都是这个用户的关注的对象 这样设计可以吗?

 标签:mysql

讨论这个帖子(4)垃圾回帖将一律封号处理……

Lv6 铂金3
阿港胖三斤 CEO 9月前#1

当然不能每个用户建一张表了,应该建一个关注表,每一项记录一个关注的关系 (关注者ID: 1 被关注者ID:2)。用到的时候联表查询就好了

Lv7 钻石1
雪山飞狐 职业无 9月前#2

主键,用户ID,关注的用户ID,关注时间

查询关注我的 SELECT * FROM t WHERE 关注的用户ID=我的用户ID
查询我关注的 SELECT * FROM t WHERE 用户ID=我的用户ID
Lv6 铂金3
zxg15212157230 其它 9月前#3

这种数据更适合使用Redis来存储,当然为了可靠,数据最终还是要落地到数据库的。简单提供一个设计方案:

# 使用SET数组结构来存储关注的用户列表
SADD $user:follows $user1 $user2 $user3 ...

当然这只是一个思路,实际还要解决不少问题,比如:数据规模问题(如果到新浪微博这个量级,就不是简单一个Redis可以搞定的了)、用户关注关系是一个网关结构,所以实际实践起来还是比较复杂的,各种情况都要考量和测试

Lv2 白银
雷雷爱学习 技术总监 9月前#4

每个用户都设一个表应该不大行吧?
或者用户设计一个字段,储存关注的用户的id?

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取
会员账号
会员密码
安全验证