首先了解一下外键
一、外键的本质
定义:外键是某个表中的字段(或字段组合),其值必须与另一张表的主键值相匹配。
核心作用:强制数据一致性,维护表间关系。
二、外键的核心用途
1.数据完整性保护
禁止无效关联:
确保关联字段在父表中存在
级联操作:
当父表数据变更时自动处理子表数据
2.业务逻辑显性化
明确关联关系:
通过外键命名直接体现业务含义
强转业务规则:
编辑 文章
3.数据查询优化
关联查询加速:
外键会自动创建索引,提升JOIN
再了解一下不同种关系
一、一对一关系
特点:一个表中的一条记录唯一对应另外一个表中的一条记录
通常用来差分一个表,将一个表中不常查询的字段放入另外一个表中并且建立外键(联系)
二、一对多关系
特点:一个表中的一条记录可对应另外一个表中的多条记录
如部门和员工通常通过对象多的查询
三、多对多的关系
特点:表A中的一条记录可以对应表B中的多条记录、反正亦然(这个需要建立中间表进行查询)
经过分析我们得知聊天室需要建立的表有
用户表:
朋友表:
这里的外键是id为user表中的id(以此类推)
在线状态不需存储,应该用线程安全map完成
朋友关系表:
消息表:
群聊表:
群聊成员表:
群聊成员与群聊关系表: