锁定老帖子 主题:要不要在数据库中建立主外键约束
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-05-04
很是不解。细问之。答曰:效率问题。 问大家,到底需不需要建立呢? 我先说说我的想法: 其实,以前我的所有系统都是建立的。不过听了他的回答,感觉也有些道理。但是,如果上面没有控制得好,就会出现错误的数据。 所以,我觉得如果系统小,就那么几十张表,业务不复杂就不需要了。系统大,表多,业务复杂那还是建立的好。 说完我的想法,自己都感觉这个东西都没有必要发帖了。 不过,仁者见仁,智者见智,还是想听听大家的看法。说说,大家平时怎么做的?以及为什么这么做? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-05-04
不建任何外键和存储过程与触发器之类的非通用约束
|
|
返回顶楼 | |
发表时间:2008-05-04
主外键我认为还是要建的,毕竟数据完备性的控制不能全部甩给开发人员,不然一个不小心就把数据完备性破坏了,到时候再想恢复,那可又是一场硬仗啊。
|
|
返回顶楼 | |
发表时间:2008-05-04
没有主外键,
1.执行计划得不到最优的 2.数据完备难以保证, 不可保证这个数据就你一个系统用 |
|
返回顶楼 | |
发表时间:2008-05-08
之前做 数据分析性的系统 是没有建外键 所以使用sql查询的时候 很多时候都是外关联
后来做些小系统使用 外键 |
|
返回顶楼 | |
发表时间:2008-05-08
"非索引的外码是导致死锁的最主要原因"
----《Expert one-on-one Oracle》中文版p272 |
|
返回顶楼 | |
发表时间:2008-05-08
armorking 写道 "非索引的外码是导致死锁的最主要原因"
----《Expert one-on-one Oracle》中文版p272 不知道能否解释一下这句话。谢谢!! |
|
返回顶楼 | |
发表时间:2008-05-09
外键约束应该由应用程序来保证,有些数据库就是不支持外键的
外键不加索引的情况如果有关联查询的话会造成全表扫描啊,如果同时有批量更新操作,容易造成资源互锁。 |
|
返回顶楼 | |
发表时间:2008-05-11
外键未加索引是导致死锁的主要原因,这是因为,无论是更新父表住键,或者删除一个父记录,都会在子表上加一个表锁,这就会不必要的锁定更多的行。
|
|
返回顶楼 | |
发表时间:2008-12-29
mysql有外键吗?我所接触的系统基本是不建外键的,但在关联字段加索引。
|
|
返回顶楼 | |