最近做项目的时候在讨论表与表之间的关系是否需要建立外键约束,
下面是我总结的一些优缺点,欢迎大家指导,帮忙分析一下到底使用哪种方式
建立外键的好处:
1) 由数据库保证数据完整性,比程序保证完整性更可靠,
多应用时(如有应用A,B,C他们之间的实体存在关联关系),由程序来保证数据完整性变得困难
2) 外键约束使得数据库的ER图可读性变强,有助于业务逻辑设计
不建立外键的好处:
1) 可以用触发器或应用程序保证数据的完整性
2) 开发变得简单,维护数据时不用考虑外键约束
3) 性能高,大数据量插入操作时不用考虑维护外键
下面是我总结的一些优缺点,欢迎大家指导,帮忙分析一下到底使用哪种方式
建立外键的好处:
1) 由数据库保证数据完整性,比程序保证完整性更可靠,
多应用时(如有应用A,B,C他们之间的实体存在关联关系),由程序来保证数据完整性变得困难
2) 外键约束使得数据库的ER图可读性变强,有助于业务逻辑设计
不建立外键的好处:
1) 可以用触发器或应用程序保证数据的完整性
2) 开发变得简单,维护数据时不用考虑外键约束
3) 性能高,大数据量插入操作时不用考虑维护外键
讨论结果:不建立外键约束,关联关系由程序控制,另外还需要删除现有的外键关系
从面向对象设计的角度来看。是应该取消掉外键约束的。因为数据库的作用就是高校的存取数据。而不是表达业务逻辑关系。把业务逻辑关系放到数据库中来维护是一种非常面向过程的思维。使得程序设计,用例规则直接面向数据库而不是面向业务。怎么看都不是一种好的方式。
本文讨论了数据库表间是否应建立外键约束的问题。分析了外键约束的优点如增强数据完整性和提高ER图可读性,同时也指出了其可能带来的缺点包括增加开发复杂性和影响性能。最终建议采用程序控制关联关系。
1万+

被折叠的 条评论
为什么被折叠?



