mysql笔记:表设计原则
表对应了一个实体
表与表之间的关系:
一对一
一对多
多对多
一对一关系
例如:用户 user和身份信息 info
子表的外键关联了父表的子健(类型必须一样)
一对多关系
以电商系统为例子
用户-商品:没有关系
用户-订单:一对多
商品-订单:多对多关系
一对多:
增加外键
多对多
关系型数据库范式设计
范式设计优点:
- 减少冗余
- 消除异常(插入异常,更新异常,删除异常)
- 让数据组织更加和谐
数据库范式绝对不是越高越好,范式越高意味着表越多,多表联合查询的机率就越大。
第一范式(1NF)
第二范式
第三范式
BC范式
第四范式(4NF)
- 查询的时候需要连接多个表,增加了SQL查询的复杂度
- 查询的时候需要连接多个表,降低了数据库查询的性能
因此,并不是范式越高越好,要视实际情况而定,第三范式已经很大程度上减少了冗余,并且基本预防了插入异常,更新异常和删除异常