【MySQL】设置好友关系(关注、粉丝、互关)的数据库设计
主键 | 关注者id | 被关注者id |
1 | 1 | 2 |
2 | 1 | 3 |
3 | 2 | 1 |
4 | 2 | 3 |
5 | 3 | 1 |
6 | 3 | 4 |
7 | 4 | 3 |
8 | 5 | 6 |
9 | 7 | 8 |
先建一张好友关系表
CREATE TABLE IF NOT EXISTS `follower` (`id` int(6) unsigned NOT NULL,`user_id` varchar(200) NOT NULL,`follower_id` varchar(200) NOT NULL,PRIMARY KEY (`id`) ) DEFAULT CHARSET=utf8; INSERT INTO `follower` (`id`, `user_id`, `follower_id`) VALUES('1', '1', '2'),('2', '1', '3'),('3', '2', '1'),('4', '2', '3'),('5', '3', '1'),('6', '3', '4'),('7', '4', '3'),('8', '5', '6'),('9', '7', '8');
我关注的人
select * from follower where user_id = '1'
关注我的人
select * from follower where follower_id = '1'
跟我互关的人
select a.user_id from follower as a inner join follower as b on a.follower_id = '1' and b.follower_id = '1'
但是运行上方代码,会有重复数据出现;
跟我互关的人去重
select a.* from (select a.user_id from follower as a inner join follower as bon a.follower_id = '1' and b.follower_id = '1' ) a group by a.user_id;
判断两人关系(互关)
select 1 from follower where user_id = '1' and follower_id = '2' union all select 2 from follower where user_id = '2' and follower_id = '1'
这里会返回一个List<Integer> 数组,有四种情况
- 空数组 A,B 之前无任何关系
- [1,2] "1" 和 "2"相互关注
- [1] "1" 关注了 "2"
- [2] "2" 关注了 "1"
【MySQL】设置好友关系(关注、粉丝、互关)的数据库设计相关推荐
- 即时通讯数据库好友关系(一对多)应该怎样设计?
即时通讯数据库好友关系(一对多)应该怎样设计? 问1: 比如一个帐户的号码,年龄,性别,说明等用一张表完全可以容纳下了,但每个帐户有很多的好友,好友放这张表里不太好办吧? 是不是要为每一个帐户新建一张 ...
- mysql好友关系数据表设计_即时通讯数据库好友关系(一对多)应该怎样设计?...
[MYSQL里面有如下的表 user:id username photo:id name photo_favour(图片收藏关系表):photo_id user_id假设这几个表都相当大,需要进行分 ...
- 传世的关系模型,巧夺天工的分布式数据库设计
Hadoop生态的分布式数据库 1.什么是分布式数据库? 从狭义的理解就是分布式关系型数据库,主要特指目前热门的NewSQL. 从广义的理解,分库分表的传统关系型数据库,传统关系型数据库集群,关系型数 ...
- 第63天学习打卡(MySQL 测试索引 索引原则 数据管理和备份 规范数据库设计)
7.2测试索引 CREATE TABLE `app_user` ( `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, `name` VARCHAR(5 ...
- 用Mysql做个人信息管理系统_个人信息管理系统数据库设计精选.doc
个人信息管理系统数据库设计精选 河海大学计算机及信息工程学院(常州) 数据库课程设计 学年学期 2012第二学期 项目名称 个人信息管理 项目组员 曹清云.陈天昊 指导教师 景雪琴 组号:8 目 录 ...
- mysql 设置 0、1 用什么数据类型_MySQL数据库教程-数据表字段约束
MySQL数据库教程-数据表字段约束 为保证数据库中存储数据的规范化,一般需要在定义字段时进行字段规范与约束的定义.保证在进行数据录入时,数据库能够通过这个规则.约束.规范检查所录入的数据,防止错误及 ...
- mysql查询自定义数据_实现自定义查询的数据库设计及实现(一)
需求 先说一下需求:实现用户自定义的查询,用户可以自定义要查询的列.自定义条件条件.自定义排序.除了查询使用外,还可以使用于各个需要根据条件进行约束的业务,如权限: 本设计和实现,很大部分是通过数据库 ...
- 客户关系管理系统的系统需求分析与数据库设计
一 需求分析 本项目是一个基于MVC实现的客户管理CRM系统,预先设置了三个角色,即系统管理员.信息管理员和客服人员. 本系统包括主要五大模块,即权限管理.业务信息.任务管理.公告管理和客户管理. 功 ...
- mysql中的字典项是啥_常见数据库设计(1)——字典数据
在稍大一些的项目中,我们总是需要管理各种各样的类型类型数据(如商品类型.游戏类型...).对于这些类型的管理类似,如果为每 一种类型都建立一张表去维护(而在项目中,正常出现50种类型),那工作量是可想 ...
最新文章
- 适用于 macOS 下 2K 显示器开启 HiDPI 的简便解决方案
- 制冷设备维保常见的10大故障!
- 写 Python 到底用什么编辑器好?鹅厂程序猿吵翻了
- 【VMware虚拟化解决方案】双网隔离虚拟化桌面解决方案
- 云计算openstack介绍
- mysql 魔术设置_mysql主从复制实践
- 公司新来的小可爱,竟然把内存搞崩了!
- 笔记41 Spring Web Flow——Demo
- [Android] Context应该怎么写?
- python信用评分卡_基于Python的信用评分卡模型分析(二)
- 13. GameProjec1_GameEngine
- RTI_DDS自定义插件开发 1
- 物联网共享单车有什么物联技术?
- 过零检测电路原理与作用 可控整流
- Maxent模型预测
- (转)ubuntu软件列表
- 音视频笔记-视锥细胞和视杆细胞的区别
- win7下配置IIS
- PM到PMO负责人--逆袭成长之路
- 国盛源投资:每月存1000块,要怎样存才干在20年后取出的钱最多?
热门文章
- 荣耀平板6鸿蒙os,鸿蒙OS系统百机升级计划表来了,快看看有没有你在用的机型...
- 『对话』埃森哲互动Lamy:数字营销的变与不变
- FQDN and NetBios
- 【刷题篇】领扣3171.找出1- n 中能被 x 整除的数(python)
- 使用matplotlib绘制简单图表第二课
- 彻底卸载MySQL Connector Net
- 板式橡胶支座弹性模量怎样计算_板式橡胶支座如何送检
- 【Spring+SpringMVC+Mybatis】利用SSM整合,完成用户登录、注册、修改密码系统
- 线路在线监测装置-枪机AI型
- 对京东2018年尾企业组织管理的调整的思考。