外键的作用?
来源:互联网 发布:人设插画知乎 编辑:程序博客网 时间:2024/04/29 15:32
外键是数据库一级的一个完整性约束,就是数据库基础理论书中所说的“参照完整性”的数据库实现方式。
外键属性当然是可以去掉的,如果你不想再用这种约束,对编程当然不会有什么影响,但相应的录入数据的时候就不对录入的数据进行“参照完整性”检查了。
例如有两个表
A(a,b) :a为主键,b为外键(来自于B.b)
B(b,c,d) :b为主键
如果我把字段b的外键属性去掉,对编程没什么影响。
如上面,A中的b要么为空,要么是在B的b中存在的值,有外键的时候,数据库会自动帮你检查A的b是否在B的b中存在。
1、外建表达的是参照完整性:这是数据固有的,与程序无关。因此,应该交给DBMS来做。
2、使用外建,简单直观,可以直接在数据模型中体现,无论是设计、维护等回有很大的好处,特别是对于分析现有的数据库的好处时非常明显的--前不久我分析了一个企业现有的数据库,里面的参照完整性约束有的是外键描述,有的是用触发器实现,感觉很明显。当然,文档里可能有,但是也可能不全,但是外键就非常明显和直观。
3、既然我们可以用触发器或程序完成的这个工作(指参照完整性约束),DBMS已经提供了手段,为什么我们要自己去做?而且我们做的应该说没有RDBMS做得好。实际上,早期的RDBMS并没有外键,现在都有了,我认为数据库厂商增加这个功能是有道理的。从这个角度来说,外键更方便。
4、关于方便,根据我带项目的情况来看,程序员确实有反映,主要是在调试时输入数据麻烦:如果数据可以违反参照完整性,那么就是说参照完整性本身就不对名誉业务冲突,此时也不应该用触发期货程序实现;否则,说明数据是错误的,根本就不应该进入数据库!而且,这也应该是测试系统的一个内容:阻止非法数据。实际上,前台程序应该对这种提交失败做出处理。数据是企业的而非程序的,储程序要尽量与数据分离,反之亦然。
最后说一下,建键几个原则:
1、 为关联字段创建外键。
2、 所有的键都必须唯一。
3、避免使用复合键。
4、外键总是关联唯一的键字段。
- 外键的作用?
- 外键的作用
- 外键的作用
- 外键的作用
- 外键的作用
- 外键的作用
- 外键的作用
- 【外键的作用】
- 外键的作用
- 外键的作用?
- 外键的作用
- 外键的作用是什么
- sql 外键的作用
- 外键约束的作用
- [转]外键的作用
- 外键的作用是什么?
- 数据库外键的作用
- 数据库外键的作用
- 安庆名称的由来
- 数据库锁的介绍
- 比尔盖茨现身西雅图SAS 2007“治疗失眠”
- OCX和DLL的区别
- 记得我是这样学的C++(1)
- 外键的作用?
- SQLServer触发器求助
- Web设计者必须掌握的25个CSS效果
- 鼠标模拟和键盘映射测试
- web.config详解--转载
- 可变参数学习笔记
- 运用map库创建关联容器
- WDM驱动程序入门
- 绘制恒线速度的参数曲线