问一个关于数据库主外键的问题

#1 改变命运2023

在学校学过主主外键,但一直不是很明白。现在做项目,再次遇到。查了很多资料。总觉得还是有疑惑。我不建主键和外键也可以联表查询,设主外键也可以联表查询。那么到底他们有什么区别呢?困扰多年的问题,希望能在此论坛上得到解答。谢谢

2012-05-25 11:13:17

#2 jake

现代web编程里面,主键是必须的,不只因为主键在逻辑上是一个记录自增的标识,而且还是一个特殊的索引,会比普通索引的速度更快一些,所以一般表都建议加上主键。
现代web编程,外键是不需要的,或者说是累赘。

无论有没有外键,其实都可以进行操作,这是肯定的。其实你的问题,应该是外键到底有什么意义?

外键是在一些比较年代久远的书上面出现的,包括教科书。因为那个年代,大部分数据库操作,都是由专人在命令行界面上进行SQL命令操作。外键是作为了一种约束,如果在命令行内执行的命令,没有按照外键约束来写SQL的话,那么命令行会提示出错。

所以外键的作用就是当你一直都是用命令行来操作数据库时,想要对自己进行提示的一种方法。

详情可以google关于数据库约束的相关知识。

2012-05-25 12:41:27

#3 改变命运2023

jake 发表于 2012-5-25 12:41
现代web编程里面,主键是必须的,不只因为主键在逻辑上是一个记录自增的标识,而且还是一个特殊的索引,会 ...
嗯,是的,我的意思就是问外键的存在的作用。经您的一番讲解,有种茅塞顿开的感觉。谢谢jake。明白了

2012-05-25 13:57:08