目前数据表设计成上图这个样子
假设表名是user_fans 用户A的用户id是1 用户B的用户id是2
用户A关注用户B 则插入数据时, 4个字段分别是 1 1 2 0
用户B关注用户A 则插入数据时, 4个字段分别是 2 2 1 0
此时他们是互粉状态 我将2条记录的status字段都由0改为1
用户A查看自己的粉丝列表 SQL则是 select fans_id, status from user_fans where user_id = 1
然后status字段可以用来判断用户A的粉丝和用户A的关系状态
但是这样存在一个问题就是 比如用户A查看用户B的粉丝列表
此时用户B的粉丝列表和用户A之间的关系就不好确定
只能先把用户A所有关注的用户id都查询出来, 然后遍历用户B的粉丝列表(假设查20个人出来, 遍历20长度的数组)
在foreach循环中判断20次用户B的粉丝的id是否在用户A的关注的数组中
数据量小的话应该不会有性能问题
但是比如用户A的关注了3000个人 那么查询出用户A关注的用户数组中就有3000个ID,
这样用户A每次查看他人的粉丝列表都会很慢, 引起性能问题, 请问有没有好的办法解决这样的问题?
看网上有的文章说粉丝与关注这样的系统应该使用redis, 如果用redis, 具体怎么使用, 用什么数据类型?
一只名叫tom的猫
相关分类