概述
问题引入
以前的意识里都是需要建立外键,外键能起到约束作用,能保证数据的完整性和一直性,比如如果没有外键约束,你自己程序控制又不到位把基本信息都删除了,详情却存在,人的基本信息不存在了,工资信息里却存在这个人,想要找这个人究竟是谁都找不到。
今天看到原来的外键都被去掉了,问了下组长,结果回答就两个字“效率”,虽然感觉很诧异,但是毕竟人家比我有经验并没有去争论,下面将站在两个对立面去赞成和反对建立外键。
建与不建
注意这里说的建与不建不是说不要外键,尽可能把表弄成一张表,而是说人为控制还是数据库使用本身外键约束。
建
利用数据库保证数据库完整性和一致性;自己用程序控制怕有疏忽,外键多起来麻烦;同一个数据库可能给不同应用用,但是开发数据库的人并不是开发应用的人,开发应用的人对数据库不够了解,就算开发数据库的人去开发应用时间长也会忘记;
不建
导数据入库要有先后顺序,而且也会检查外键是否存在,十分消耗时间;删除数据也是;还有就是可能数据建立的约束可能效率不够高,想自己建立高效的约束。
总结
我自己觉得完整性和一致性肯定是需要保证的,不然会出问题,也会影响效率,需要看你项目又多大。
小型项目就使用数据库本身的,效率追求不高,也没必要花时间自己建立约束,时间代价比较大。
较大型项目可能数据约束本身效率不够好,满足不了大项目对效率的要求,又有人力物力去支持建立自己的高效约束。
还有较大项目初期,想早点上线,效率要求没有那么大,没时间去建立高效率约束,那么就用数据库本身的约束,项目初期要求稳定一些比较好。
最后
以上就是细腻鲜花为你收集整理的数据库该不该使用外键问题引入建与不建总结的全部内容,希望文章能够帮你解决数据库该不该使用外键问题引入建与不建总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复