数据库设计什么时候该放弃外键关联?

水牛叔叔 发布于 2013/09/05 11:29
阅读 1K+
收藏 0
我有还几个同学在华南资讯做开发,我问他们公司的数据库是怎么设计的。他们说的其中一点我很疑惑:他们的数据库全都是没有外键关联的。原因大概是说方便数据库的调整之类的。有哪位可以解释一下这个说法。淘宝、京东的数据库会不会也是没有外键的?
加载中
1
魔力猫
魔力猫

除非有确实的证据证明外键确实已经影响了数据库性能,不然我认为还是应该添加外键的,这是对数据完整性的保证。

很多二把刀都不爱要外键,说法就是影响性能。但是你让他说到底影响了多少?说不出来了。实际上一个差劲的SQL就可以把你所有的优化成果毁掉,以后在去掉外键前还是先拿数据说话比较好。

shown
shown
而且做好数据库外键不用考虑太多的程序事务。也不必每次动表的时候都考虑关联的操作。
子矜
子矜
顶。
0
小猫王
小猫王
在sql语句中关联
0
小虫0302
小虫0302
有的都不支持外键呢, 比如MYSQL的 MYSIAM数据库引擎
0
mark35
mark35
用mysql的,或者数据不值钱的都可以忽略外键
0
实迷途其未远觉今是而昨非
实迷途其未远觉今是而昨非
数据库中不关联,程序逻辑中处理关联关系。不然一些级联操作会很麻烦
0
gvim
gvim

设计、编码阶段先加外键,各种测试完毕,可以统一把外键drop掉。

0
SeekerLee
SeekerLee

互联网及电子商务的数据量大,外键约束会影响性能。

逻辑上是存在外键的,sql关联用得到。但是外键,并没有加入到数据库里,也就是说数据库不对外键进行约束。说白了就是建表的时候不加foreign key,但是你知道,表A的b_id字段就是表B的主键b_id。

0
wad12302
wad12302
我这边也是,数据库没有外键关联的,业务上保证外键对应关系
0
0
mark35
mark35

引用来自“魔力猫”的答案

除非有确实的证据证明外键确实已经影响了数据库性能,不然我认为还是应该添加外键的,这是对数据完整性的保证。

很多二把刀都不爱要外键,说法就是影响性能。但是你让他说到底影响了多少?说不出来了。实际上一个差劲的SQL就可以把你所有的优化成果毁掉,以后在去掉外键前还是先拿数据说话比较好。

屌丝的数据不值钱也拿不出钱去升级服务器所以把本该由数据库完成的事情自己包揽了
返回顶部
顶部