外键的作用是什么?
2015-06-16 19:59
369 查看
什么是外键?为什么要使用外键?如何来用?不用会怎样?
分类: 数据库2009-08-2110:40 3928人阅读 评论(2) 收藏 举报
数据库
什么是外键
外键 (FK) 是用于建立和加强两个表数据之间的链接的一列或多列。通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接。这个列就成为第二个表的外键。
为什么要使用外键?
保证数据的参照完整性
不用会怎样?
不用也不会怎么样,如果一个健壮的系统,数据库中的数据一定有很好的参照完整性,如果不用外键,就要多写代码对数据的完整性进行额外的判断
外键的作用很重要,最好在数据库中使用。举一个例子比较明白。
比如有两张表格,一个是学生档案,另一个是上学期间的成绩单
档案中会有:学号,姓名。(学号为主键)
成绩单有(简化过的):学期号,学号,平均分数(学期号,学号两个同时为主键,学号同时为外键)
为了保证成绩单上的数据有效,所以要求录入学号时,必需保证档案中有这个学号,否则就不能录入。
从而保证了成绩单上的成绩数据的引用完整,否则将会是垃圾数据。
用程序控制,有很多缺点;录入成绩单时为了保证学号有效,首先要搜索档案,当档案很大时会影响效率。程序控制并不能保证百分之百引用完整性,尤其是并发操作。
说一个特例(主要是说明程序控制不好):
A录入成绩单,B在编辑档案。
当A录入张三的成绩,保存时,搜索张三存在,于是程序下一步就要存盘,但这时B恰好把张三删除了。但A那边的程序并不知道,于是就把一条垃圾数据存进数据库中了。
此例的操作流程正确与否不重要,但说明了程序控制并不是好方法。
相关文章推荐
- 安装python及机器学习相关软件包
- 四个漂亮CSS样式表
- Python:模拟linux命令cat
- Java并发编程-15-并发任务间数据交换
- Android 快速开发系列 ORMLite 框架最佳实践
- 达尔文流媒体服务器(Darwin Streaming Server)(DSS)并发性能测试报告
- android开发中图片优化步骤
- mysql导入sql文件报错,“This function has none of DETERMINISTIC”,解决办法
- OC学习--代理与协议的使用
- 使用String的时候能注意的问题
- 简易Java(02):如何构建您自己的Java库?
- iOS完整push信息
- 我的Java基础知识总结1
- Lovo 6月16号课程总结
- excel挑格求和公式
- Single Number I&& II——还没看,倒过头来再看
- pt-online-schema-change 修改字段属性产生死锁
- 彻底搞定C语言指针详解完整版
- 微软100题(91)智力题
- Android 中对于图片的内存优化方法