关注与粉丝表结构设计及查询
概述
关注与粉丝表一般包含我关注的用户,可以查询到我的粉丝列表,查询我关注的用户他们关注了哪些用户等这些功能。
表结构设计
字段 | 说明 |
id | 主键 |
user_id | 用户ID |
focus_user_id | 被关注人ID |
create_time | 创建时间 |
描述说明
- user_id 设置索引 用于查询 我的关注
- focus_user_id 设置索引 用于查询 我的粉丝
- user_id ,focus_user_id 设置联合唯一索引 数据库约束控制 不会出现重复关注
- create_time 设置索引 用于查询 我的粉丝/我的关注 列表时 按时间倒叙分页查询
语句查询
1. 查询 A 的关注用户列表
select focus_user_id from user_focus where user_id = A.userId order by create_time desc
2. 查询 A 的粉丝列表
select user_id from user_focus where focus_user_id = A.userId order by create_time desc
3. 查询 A,B二个用户之间的关注状态
( SELECT 1 from user_focus where user_id = A.userId and focus_user_id = B.userId )union all( SELECT 2 from user_focus where user_id = B.userId and focus_user_id = A.userId )
空数组 A,B 之前无任何关系
- [1,2] A,B 相互关注
- [1] A 关注了 B
- [2] B 关注了 A
4. 查询 A,B 共同关注
1. SQL语句
select * from user_focus where user_id in (A.userId,B.userId)
2. 可以用代码来实现此段功能,求A、B两个共同集合的交集
5. 查询 A,B 共同粉丝
同上
6. 查询我关注的用户他们关注了哪些用户,并排除我关注的用户和自己
。有点拗口,就是类似微博的推荐关注用户
select distinct B.focus_user_id from user_fans AINNER JOIN user_fans B on A.focus_user_id = B.user_idLEFT JOIN user_fans C on B.focus_user_id = C.focus_user_id AND C.user_id =userIdwhere A.user_id = userId AND B.focus_user_id != userIdAND C.focus_user_id is NULL limit 10
7. 查询用户A的粉丝,并且这些粉丝是我关注的人
SELECTA.focus_user_id
FROMuser_fans AINNER JOIN user_fans B ON A.user_id = B.focus_user_id
WHEREA.user_id = userId AND B.focus_user_id = myUserId LIMIT 3
参考链接
关注/粉丝 表结构设计及查询(附带SQL)_深圳市热心市民市民的博客-CSDN博客_粉丝表设计
关注与粉丝表结构设计及查询相关推荐
- mysql用户关注店铺表_MySQL关于用户关注粉丝表设计方案的思考
方案一 follow(关注关系表) 字段名 类型 索引 注解 id primaryKey() user_id integer()->unsigned()->notNull() normal ...
- mysql 好友粉丝数据表_MySQL关于用户关注粉丝表的设计方案
一.数据结构分析 用户关注粉丝是一个多对多的数据模型,分析对象的数据特征,我们给每个用户设计一个关注者属性和粉丝属性,用于存储用户的关注者id和粉丝id,如用户1: $arr1 = [ 'follow ...
- 谈Apache OFbiz 会员模块表结构设计
数据库表的结构设计可谓是ofbiz除技术框架之外,另一个非常值得学习的方向.这篇文章我们来谈谈ofbiz对电子商务会员表的设计. PARTY ofbiz对人.团体进行了抽象,称之为party,翻译为中 ...
- 用户画像:数据指标与表结构设计
本篇博客介绍一下画像中需要开发的数据指标与开发过程中表结构的设计. 首先介绍画像开发的数据指标,画像开发过程中通用类的指标体系包括用户属性类.用户行为标签类.用户活跃时间段类.用户消费能力类.用户偏好 ...
- Redis数据结构Set应用场景--黑名单校验器、京东与支付宝抽奖、微博榜单与QQ群的随机展示、帖子点赞、关注与粉丝、微关系计算、HyperLogLog的入门使用
Set应用场景 set命令使用 淘宝黑名单 一.黑名单过滤器业务场景分析 二 .解决的技术方案 三.SpringBoot+redis模仿实现校验器 京东京豆抽奖 一.京东京豆抽奖的业务场景分析 二.京 ...
- 表结构设计的基本思路
首先在开启一个项目时,至关重要的第一步就是设计表结构,很多小伙伴在初入职场的时候找不清如何下手只是感觉很乱,那么今天我提供几个基本的思路 切入点 找到一个主表,比如你要设计一个某某产品的的管理系统,那 ...
- 初学后端,如何做好表结构设计?
前言 最近有不少前端和测试转Go的朋友在交流群里聊:如何做好表结构设计? 大家关心的问题阳哥必须整理出来,希望对大家有帮助. 先说结论 这篇文章介绍了设计数据库表结构应该考虑的4个方面,还有优雅设计的 ...
- Shiro表结构设计
表设计 开发用户-角色-权限管理系统,首先我们需要知道用户-角色-权限管理系统的表结构设计. 在用户-角色-权限管理系统找那个一般会涉及5张表,分别为: 1.sys_users用户表 2.sys_ro ...
- 转载:数据库表结构设计方法及原则
在目前的企业信息系统中,数据库还是最佳的数据存储方式,虽然已经有很多的书籍在指导我们进行数据库设计,但应该那种方式是设计数据库的表结构的最好方 法.设计时应遵从什么样的原则.四个范式如何能够用一种方式 ...
最新文章
- NanoPi NEO Air使用十:自己编写驱动来控制LED
- 利用kinect检测任意平面
- PV PVC - 每天5分钟玩转 Docker 容器技术(150)
- mysql itpub_mysql
- IntelliJ IDEA 部署 Web 项目,终于搞懂了!
- C++:求数字i以后的n个素数
- 解放原画师!Wav2Lip 用 AI 听音同步人物口型
- 2011-10-13
- macbook excel导入html,mac版本怎么把网页数据导入Excel
- 统计学三大相关系数之皮尔森(pearson)相关系数
- PCM开发板模块实验指导--2.4G无线通讯模块NRF24L01实验
- dingo php,Laravel Lumen RESTFul API 扩展包:Dingo API(一) —— 安装配置篇
- 读论文Beyond Part Models Person Retrieval with Refined Part Pooling
- android记账本折线图_Android Studio——记账本以及图表可视化实现
- errorImg异常图片显示
- Python自动生成ffmpeg转码HEVC (X265,H265) 命令
- UE4 版本迭代、资源热更、pak更新方案
- arm芯片中的浮点运算(一)
- 介绍一位超级大美女的经历!
- 中国移动支付报告:领跑全球 前景广阔