数据库外键用和不用的争论

   从DBA的角度讲是希望系统有外键的,因为可以保障数据的完整性。
从开发人员或者项目经理的角度讲不希望有外键,因为加外键相当于人为制造了障碍,开发效率和执行效率都低下。
    外键约束的作用其实完全可以通过程序来控制完成,只要数据的操作在同一个事务内进行,出错能够回滚。
基本上数据冗余的问题就不存在了,而且表之间数据的灵活性大大增强。
    如果数据库设计不用外键,数据库文档说明便显得非常重要,特别是人员流动比较大的项目。
这个文档的完整及时准确性显示非常重要。不然有些程序员做得是前一搭后一搭。也可以在外键的命名上做出标记。
    如果您的项目牵涉到其它公司项目的数据整合,也就是得从别家公司数据库里导入数据到你现有系统的数据库。
这种项目一般都不建议做外键约束,因为客户数据可能存大很多冗余,错误的,而你又不得不保留下来。
    在项目需求不是很完善和数据库设计还不能稳定下来的情况下,使用外键会让你抓狂。表合并,表切分等操作外键会带来很大麻烦
    总之一句话,技术是为需求服务的,需求不严肃的,技术也没必要做得过于严肃,有保证即可。
尤其是有后门程序需求的客户的项目。需求严肃的项目,数据安全、完整性要求很高的,建议使用外键。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值