引入
当我们在数据库中创建表的时候,有可能某些列中值内容量很大,而且重复。
例子:创建一个学生表,按学校年纪班级分,表的内容大致如下:
id
name
partment
1
xxx
x学校x年级x班级
2
ooo
x学校x年级x班级
3
zzz
z学校x年级x班级
4
ddd
y学校x年级x班级
我们看出来对应的partment对应的值很长,而且重复量很大,这样就很不合适。
因此我们考虑将复杂重复的部分单独拿出来分成2个表:
第一张表:
id
caption
1
x学校x年级x班级
2
y学校x年级x班级
3
z学校x年级x班级
第二张表在之前的基础上修改的:
id
name
partment
1
xxx
1
2
ooo
2
3
zzz
3
4
ddd
1
这样看起来就很简洁了,我们将很长的且重复的部分拿出来,然后规定编号,创建学生表的时候,学生对应的partment只需要取学校对应的id便可,这样同时这2张表也就会关联起来。
说明:
1、他们的关联关系;表2中的partment和表1的id联系再一起。
2、表一的数据会对应表2中的多条数据,这就叫一对多。
问题:此时,两张表是相对独立的,都可以各自插入自己的数据,这样做很合适的,并没实质行的关联?
因此,必须要将其限制。表二的partment数据必须是表一中有的,不然,就不让其增加。
这里(partment)就引入了一个名词 —- 外键
外键
说明:
1、外键:一个表接收另一个表的主键。
2、partment外键的是表一中的nid。
3、当我们创建了外键,则系统变默认会为我们添加,相应的约束,如:表二中的partment数据必须是表一中nid