主键 关注者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. 即时通讯数据库好友关系(一对多)应该怎样设计?

    即时通讯数据库好友关系(一对多)应该怎样设计? 问1: 比如一个帐户的号码,年龄,性别,说明等用一张表完全可以容纳下了,但每个帐户有很多的好友,好友放这张表里不太好办吧? 是不是要为每一个帐户新建一张 ...

  2. mysql好友关系数据表设计_即时通讯数据库好友关系(一对多)应该怎样设计?...

    [MYSQL里面有如下的表  user:id username photo:id name photo_favour(图片收藏关系表):photo_id user_id假设这几个表都相当大,需要进行分 ...

  3. 传世的关系模型,巧夺天工的分布式数据库设计

    Hadoop生态的分布式数据库 1.什么是分布式数据库? 从狭义的理解就是分布式关系型数据库,主要特指目前热门的NewSQL. 从广义的理解,分库分表的传统关系型数据库,传统关系型数据库集群,关系型数 ...

  4. 第63天学习打卡(MySQL 测试索引 索引原则 数据管理和备份 规范数据库设计)

    7.2测试索引 CREATE TABLE `app_user` ( `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, `name` VARCHAR(5 ...

  5. 用Mysql做个人信息管理系统_个人信息管理系统数据库设计精选.doc

    个人信息管理系统数据库设计精选 河海大学计算机及信息工程学院(常州) 数据库课程设计 学年学期 2012第二学期 项目名称 个人信息管理 项目组员 曹清云.陈天昊 指导教师 景雪琴 组号:8 目 录 ...

  6. mysql 设置 0、1 用什么数据类型_MySQL数据库教程-数据表字段约束

    MySQL数据库教程-数据表字段约束 为保证数据库中存储数据的规范化,一般需要在定义字段时进行字段规范与约束的定义.保证在进行数据录入时,数据库能够通过这个规则.约束.规范检查所录入的数据,防止错误及 ...

  7. mysql查询自定义数据_实现自定义查询的数据库设计及实现(一)

    需求 先说一下需求:实现用户自定义的查询,用户可以自定义要查询的列.自定义条件条件.自定义排序.除了查询使用外,还可以使用于各个需要根据条件进行约束的业务,如权限: 本设计和实现,很大部分是通过数据库 ...

  8. 客户关系管理系统的系统需求分析与数据库设计

    一 需求分析 本项目是一个基于MVC实现的客户管理CRM系统,预先设置了三个角色,即系统管理员.信息管理员和客服人员. 本系统包括主要五大模块,即权限管理.业务信息.任务管理.公告管理和客户管理. 功 ...

  9. mysql中的字典项是啥_常见数据库设计(1)——字典数据

    在稍大一些的项目中,我们总是需要管理各种各样的类型类型数据(如商品类型.游戏类型...).对于这些类型的管理类似,如果为每 一种类型都建立一张表去维护(而在项目中,正常出现50种类型),那工作量是可想 ...

最新文章

  1. 适用于 macOS 下 2K 显示器开启 HiDPI 的简便解决方案
  2. 制冷设备维保常见的10大故障!
  3. 写 Python 到底用什么编辑器好?鹅厂程序猿吵翻了
  4. 【VMware虚拟化解决方案】双网隔离虚拟化桌面解决方案
  5. 云计算openstack介绍
  6. mysql 魔术设置_mysql主从复制实践
  7. 公司新来的小可爱,竟然把内存搞崩了!
  8. 笔记41 Spring Web Flow——Demo
  9. [Android] Context应该怎么写?
  10. python信用评分卡_基于Python的信用评分卡模型分析(二)
  11. 13. GameProjec1_GameEngine
  12. RTI_DDS自定义插件开发 1
  13. 物联网共享单车有什么物联技术?
  14. 过零检测电路原理与作用 可控整流
  15. Maxent模型预测
  16. (转)ubuntu软件列表
  17. 音视频笔记-视锥细胞和视杆细胞的区别
  18. win7下配置IIS
  19. PM到PMO负责人--逆袭成长之路
  20. 国盛源投资:每月存1000块,要怎样存才干在20年后取出的钱最多?

热门文章

  1. 荣耀平板6鸿蒙os,鸿蒙OS系统百机升级计划表来了,快看看有没有你在用的机型...
  2. 『对话』埃森哲互动Lamy:数字营销的变与不变
  3. FQDN and NetBios
  4. 【刷题篇】领扣3171.找出1- n 中能被 x 整除的数(python)
  5. 使用matplotlib绘制简单图表第二课
  6. 彻底卸载MySQL Connector Net
  7. 板式橡胶支座弹性模量怎样计算_板式橡胶支座如何送检
  8. 【Spring+SpringMVC+Mybatis】利用SSM整合,完成用户登录、注册、修改密码系统
  9. 线路在线监测装置-枪机AI型
  10. 对京东2018年尾企业组织管理的调整的思考。