15
回答
#讨论# 关于项目开发(一)
【腾讯云】学生服务器套餐10元/月 >>>   

一个项目里面,关于模型的定义,到底有外键约束好,还是没有好。

 大家一起聊聊,您的选择是什么?为什么?大家如何看的。

 谢谢!

 

 

<无标签>
举报
乾坤之道
发帖于3年前 15回/437阅
共有15个答案 最后回答: 3年前

这个有很多争论了,现在大多数应该都没有使用外键。

不过我一直不知道具体是怎么通过程序来保证数据的一致性

--- 共有 1 条评论 ---
zwqlivetransaction,自己的程序逻辑来保证一致性 3年前 回复

我从接触数据库开始到现在就从来没用过外键。谁敢在我的数据库上设置外键,我就把谁杀了。表与表之间的关联性通过事务和程序逻辑来控制。

技术这个东西一旦讨论好坏就没完没鸟了。所以,为了不让自己徘徊也不让提问者徘徊,我直接告诉你,用外键不好。至于怎么不好了,谁愿意回答谁回答。

我是一定要用外键的,先在建模工具建模型关系,再生成对象的建表SQL,再生成Java模型,一气呵成。这样,数据一致性有了,外键的索引有了,省下不少工作量。特别是在企业管理软件,一个基础表可能被几百个业务表引用,不可能通过程序去验证基础表数据是否能删除的
--- 共有 1 条评论 ---
乾坤之道可是我碰到的系统——而且是重要领域的系统——就是没有外键,运行得还好好的。 所以,我郁闷了~ 谢谢你~ 继续~大约继续啊~ 3年前 回复

外键很烦,另外还有性能方面的影响吧?

我一般都是用事务+程序判断控制数据的完整性,当然,这肯定也有疏漏的地方。

那么就再写一些SQL脚本,用SHELL或者程序进行数据扫描,发现问题FIX就是了。

目前这样子的模式感觉问题不大。

顶部