为什么要拆表
拆分表的目的:
为了解决数据沉淀的问题,可以减少重复数据的存储,表的结构也更加清晰了。
拆分之后:
在某些业务下,需要查询多个表,速度降低了
空间 和 时间
表与表之间的关系
一对一
人与身份证的关系:
(1)注意:一对一不存在数据沉淀问题?可以不拆分吗? 可以
(2)什么场景需要拆分
用户信息+身份证+…-》表中字段太多了。
一对多
最最常见的关系:
学生和成绩的关系:一个学生有多个成绩
部门和员工的关系:一个部门有多个员工
这种关系怎么去建立,怎么去表达
在‘多’的一方,存储‘一’的主键ID。
在成绩表中存储用户的ID
在员工表中存储部门的ID
建表:使用主外键实现
多对多
常见案例:
老师与学生的关系:一个老师对应多位学生,一个学生对应多个老师
用户与商品的关系:
用户和权限的关系:
这种关系怎么去建立,怎么去表达:借助第三章表
用户和商品:订单(谁(用户ID)什么时候买了什么商品(商品ID))