下面说一下数据库的备份相关问题:
下面是关于数据库表的约束问题,这个主要用来限制表中的数据,不符合要求的数据将无法插入到表中
上面说到外键级联的问题,就是假设从表外键映入一张主表的主键用作约束,那么如果主表的主键做了更改,或者是被删除了,那么也就是说,被约束的从表外键自然也就失去了我们本来应该有的约束效果,所以,我们必须设置两张表相应的级联,就是主表做了啥更改,从表也就做出相应的更改,语法如下:
直接在创建外键后面添加相关的级联语法:
on update cascade on delete cascade
下面就来说一下表与表之间的关系:
常见的几种关系:
一对多,一对一,多对多
嗯呐,上面也就是说的是数据之间的关系。
一对一,没啥说的
一对多,比如一门课程-》多个学生 ,一个客户-》多个订单 , 一个部门-》多个员工
在强调一遍:
表与表的这种关系不是说一张表对应还几张表,是表中的每一张数据,对应另外一张表的很多数据,比如部门id,与员工表的dep_id就是一对多
这种时候,我们设计两张表的时候,就可以采用外键约束来做,一这张表可以设计成一张主表,来约束从表。
说一下多对多这种表的设计:
比如老师与学生 学生与课程,老师可以选择多个学生,学生也可以选择多个老师,一个学生可以选择多个课程,一个课程也可以被多个学生选择
这样的关系就必须用第三张表来操作了。
上面表怎么来设计呢?
首先我们创建第三张表,然后这张表就是从表,从表中有两个外键指向各自一方的主键。
create table relation{
stu_id int not null,
cus_id int not null,
constraint stu_id_fk foreign key (stu_id) reference student(stu_id),
constraint cus_id_fk foreign key (cus_id) reference course(cus_id)
} engine=Innodb default charset = utf8;
上面另外两张表,看做主表,设置主键自增长即可。
下面说一下MySQL数据表的设计:
这个核心思想就是如何规范的建表,不要显得冗余,数据的添加与删除要合法,要规范建表。因此,数据库提出了六种范式来帮助我们规范建表。其中,我们只需要了解学习到前三种即可:
下面具体来说明一下,先来说说什么是码属性,主属性与非主属性:



