项目开发过程中要不要使用外键

  • Post author:
  • Post category:其他


​项目开发过程中,外键是加还是不加,分享一下个人的经验,供参考

有两位小伙伴提到了外键这个问题,如下:

本期就“是否使用外键”这个问题,分享一下个人的经验,供参考

数据库设计中,有很多键,像主键、索引键、唯一键,这些都是标识一张表内部的数据关系,而

外键是标识多张表之间的数据关系

01 外键的优点

使用外键主要有两个优点:


  • 数据准确

    ,表跟表之间有一层外键约束着,让表数据更准确,不至于一堆的数据冗余或数据缺失。


  • 表关系明了

    ,数据库设计在项目开发过程中很重要,有了外键,通过ER图,一眼就能看出表和表之间的关系。

02 外键的缺点

虽然有上面的优点,但是实际项目开发过程中,需求是一直在迭代变化的,表跟表的关系也会随之变化,这时候外键就会变成累赘,总结两个缺点:


  • 数据刷库

    ,实际开发过程中,免不了要经常刷库,导入或删除数据,外键的存在会让表删除或插入失败(表数据变更有顺序要求)


  • 外键维护

    ,随着项目的迭代,表之间的关系也会发生变化,比如有个外键需要删除;或是要新增一个外键,但由于现有数据不准,导致外键加不上去,久而久之,ER图也不能完整的显示表关系,这ER图看还是不看?

03 个人项目经验

就我这么多年做的项目来说,没有哪个项目是加外键的,都是靠Java代码来维护表数据关系。


怕数据缺失?加事务!


怕数据冗余?加事务!

——————


THE END


——————

原文链接:

http://www.jiawablog.com/detail?id=165475836407975936


甲蛙博客

,专注Java全栈技术分享

公众号:甲蛙全栈



版权声明:本文为zcm101原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。