什么是外键?为何要使用外键?如何来用?不用会怎样?

什么是外键数据库

外键   (FK)   是用于创建和增强两个表数据之间的连接的一列或多列。经过将保存表中主键值的一列或多列添加到另外一个表中,可建立两个表之间的连接。这个列就成为第二个表的外键。  并发

 

为何要使用外键?效率

保证数据的参照完整性 搜索

 

不用会怎样?引用

不用也不会怎么样,若是一个健壮的系统,数据库中的数据必定有很好的参照完整性,若是不用外键,就要多写代码对数据的完整性进行额外的判断 程序

 

外键的做用很重要,最好在数据库中使用。举一个例子比较明白。方法

好比有两张表格,一个是学生档案,另外一个是上学期间的成绩单数据

档案中会有:学号,姓名。(学号为主键)  
成绩单有(简化过的):学期号,学号,平均分数(学期号,学号两个同时为主键,学号同时为外键)  
为了保证成绩单上的数据有效,因此要求录入学号时,必需保证档案中有这个学号,不然就不能录入。   
从而保证了成绩单上的成绩数据的引用完整,不然将会是垃圾数据。系统

 

用程序控制,有不少缺点;录入成绩单时为了保证学号有效,首先要搜索档案,当档案很大时会影响效率。程序控制并不能保证百分之百引用完整性,尤为是并发操做。表格

 

说一个特例(主要是说明程序控制很差):    A录入成绩单,B在编辑档案。   当A录入张三的成绩,保存时,搜索张三存在,因而程序下一步就要存盘,但这时B刚好把张三删除了。但A那边的程序并不知道,因而就把一条垃圾数据存进数据库中了。   此例的操做流程正确与否不重要,但说明了程序控制并非好方法。