外键的作用是什么?

 

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

分类: 数据库   3928人阅读  评论(2)  收藏  举报

什么是外键

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

 

为什么要使用外键?

保证数据的参照完整性 

 

不用会怎样?

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

 

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

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

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

 

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

 

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

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值