+ -
当前位置:首页 → 问答吧 → 关于外键的一个疑问

关于外键的一个疑问

时间:2011-12-25

来源:互联网

今天在写一个业务
三个表,其中一个表A含三个外键 manytoone指向另外三个表的主键
写的过程中在想不用外键可以么?
就是 比如三个表的格式是(id,name)
我在浏览器上 搜索的时候 输入的是一个表的name 然后转换成id,然后用这个值搜索表A不是也可以么?
而实际上大多都加了外键 难道这样和搜索效率有关?
有没有指点下的

A(aid,anameid,abuildid,aseid)
B(bid,bname)
C(cid,cname)
D(did,dname)

如果没有外键,我输入bname搜索表A 首先把bname转换成bid 然后bid和 anameid是有关系的(虽然我没加外键),那也可以搜索到结果的。

为什么要加外键呢?回答皆有分。

作者: zhangjingtao6100   发布时间: 2011-12-25

现在数据库所用的数据模型基本上是关系模型,关系数据库的完整性中有一项是参照的完整性。

设F是关系R的一个或一组属性,但不是关系R的键。如果F与关系S的主键相对应,则称F是关系R的外键,并称R为参照关系,S为被参照关系或目标关系。

参照完整性就是定义外键与主键之间的引用规则。

作者: qi00001   发布时间: 2011-12-25