仅仅通过让数据库强制执行外键,它在开发方面造成了很多麻烦。特别是在单元测试期间,由于外键限制,我不能删除表,我需要按照这样的顺序创建表,以免外键约束警告被触发。实际上,我并没有看到让数据库执行外键约束的太多问题。如果应用程序设计合理,除选择查询外,不应该进行任何手动数据库操作。我只想确保我不会因为在数据库中没有外键约束而将自己陷入漏洞,而仅仅是由于应用程序的责任。我错过了什么?以编程方式强制执行外键的优点和缺点比数据库中的优点和缺点
P.S.如果底层域对象的结构已被修改,我真正的单元测试(不是那些使用模拟的)将会删除现有的表。
我在考虑添加一个答案,但你说什么需要说,所以得到你的选票。如果开发人员缺乏编写设置和重置脚本以准备测试前提条件的技术技能,则他们不应直接在数据库上运行。在这种情况下,DBA应该准备这样的脚本。但是抛开参照完整性,因为开发人员想要懒惰?没门! – 2015-09-23 00:07:48