数据库设计之 ER图、三大范式
ER图 Entity Relationship,实体关系图。 1、先画出所有实体,矩形圈出来 2、再画出每个实体的属性,椭圆圈出来,实体、属性之前用实线连接。为了方便找出主键,作为主键的属性可以画一条下划线。 3、标注实体之间的关联关系:一对一(1,1)、一对多(1,n),多对多(m,n)。关系用菱形表示,并在菱形2边的线上标上1、m、n这些表示2个实体之间关联关系的字符。 关联关系: 一对一,一个人只对应一张身份证,一张身份证也只对应一个人。(2个一对一) 一对多,一个用户可以拥有多个订单,一个订单只能属于一个用户。(1个一对一、1个一对多) 多对多,一个老师可以教多个学生,一个学生可以有多个老师。(2个一对多) 比如实体A、B,先把A作为1,看B是1还是多;再把B作为1,看A是1还是多。 如果2个都是一对一,那A、B就是一对一; 如果1个一对一、1个一对多,那A、B是一对多; 如果2个都是一对多,那A、B就是多对多。 数据库三大范式 数据库有8种范式(Normal Form),通常只用到前3种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)。 1NF 属性的原子性(不可再分) 数据库中的每一个字段都要是不可再分隔的基本 2NF 属性完全依赖于主键 一张表中的每一条记录都要是可区分的,只通过主键来区分,所以一张表必须要有一个unique字段。