ER图
Entity Relationship,实体关系图
1、先画出所有实体,矩形圈出来
2、再画出每个实体的属性,椭圆圈出来,实体、属性之间实线连接,作为主键的属性可以画一条下划线。
3、实体之间用菱形标注联系,并标注关联关系:一对一(1,1)、一对多(1,n),多对多(m,n)。
关联关系
- 1对1:1个人只对应1张身份证,1张身份证也只对应1个人,2个都是1对1
- 1对多,1个用户可以拥有多个订单,1个订单只能属于1个用户,1个1对多、1个1对1
- 多对多:1种商品可以属于多个订单,1个订单可以有多种商品,2个都是1对多
数据库三大范式
数据库有8种范式(Normal Form),通常只用到前3种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF),我们设计的关系数据库要满足这3种范式。
1NF 属性的原子性(不可再分)
数据库中的每一个字段都要是不可再分隔的
2NF 属性完全依赖于主键
一张表中的每一条记录都要是可区分的,只通过主键来区分,一张表必须要有一个unique字段作为主键。
第二范式建立在第一范式的基础上,满足第二范式必须要先满足第一范式。
3NF 属性不能有依赖传递(不依赖于主键之外的其它属性)
比如tb_student存储学生信息,学生成绩这个字段依赖于课程,课程依赖于课程id,tb_student的主键是学生id,表中的记录都只能依赖于学生id,成绩依赖于课程id,依赖的是主键之外的字段,所以要划出去,单独用一张表来存储学生成绩。
第三范式建立在第二范式的基础上,满足第三范式需要先满足第二范式。