数据库设计
数据库表设计,把业务需求转换成可操作的表。
1,需求分析,了解客户的业务需求(业务技能)。
2,设计,通过ER图(实体关系图)
3,建表
4,测试
5,形成产品
ER图
将一类事物的共性抽象处来成为一个实体,并且表现出来实体间的关系。
‘*’ 非空的字段
‘#’ 要求字段的值不能重复
‘o’ 可空,值不唯一
unique identifier 唯一的值
primary with '#*' 唯一且非空
indispensable 必要的(也就是要求必须非空)
实体关系
one to one 一对一关联,one to many 一对多关联,many to many 多对多关联
反射关联,自身的属性之间的关联
ER图转换成表
第一范式,所有的属性都是单一值,属性只表示单一的意义。(记录可以重复,没有任何限制)没有任何约束
第二范式,某属性要求唯一且非空,(记录不可重复,但是数据可能会出现冗余)。主键约束
第三范式,非主属性只能依赖于主属性,不能依赖于其他非主属性。(解决数据冗余问题)
主键约束,属性分表,外键引用
约束
约束是针对表中的字段进行定义的,为了保证数据的完整性。
primary key (主键约束 PK)保证实体的完整性,保证记录的唯一
主键约束,唯一且非空,并且每一个表中只能有一个主键,有两个字段联合作为主键,只有两个字段的值放在一起可唯一标识记录,叫做联合主键。
foreign key (外建约束 FK)保证引用的完整性,
外键约束,外键的取值是受另外一张表中的主键或唯一值约束的,不能够取其他值,只能够引用主键或唯一键的值,被引用的表,叫做parent table(父表),引用方的表叫做child table(子表),要想创建子表,就要先创建父表,后创建子表,记录的插入也是如此,先父表后子表,删除记录,要先删除子表记录,后删除父表记录,要修改记录,如果要修改父表的记录要保证没有被子表引用。要删表时,要先删子表,后删除父表。
not null 非空约束,
unuque key(唯一键),值为唯一
index(索引)是数据库特有的一类对象,view(示图)
典型的一对多 class 对应多个学生。
class table(班级表)
|
student table (学生表)
|
一对一
student tabel (学生表)
|
xueshengzheng table(学生证表)
|
引用student表的主键,当作本身的主键,所以这个xueshengzheng表的主键,既是主键又是外键。