use*_*063 5 database-design foreign-keys database-schema sql-server-2012
很抱歉以假名发布,但由于公司限制我必须保持匿名,并且通常是为了保护无辜者.
我已经做了大约18年的专业开发人员,虽然我不是一名DBA,但多年来我一直与他们密切合作,并且已经形成了我认为对数据库实践有什么不好的感觉.我刚刚加入了一个公司,两个开发人员负责数据库模式,我发现他们非常反对使用外键约束.
他们最好的推理是:(1)由于涉及额外的数据设置,它使单元测试存储过程更加困难;(2)外键可能因顺序重要而引发错误.他们实际上更喜欢孤立的数据,而不是停止应用程序.
这对我来说似乎是不好的做法,但他们在他们的位置上坚定不移.我们提出了外键在数据完整性,查询性能,生成数据库图表等方面提供的优势,但无济于事.
我在这里看不到什么?有什么建议?
如果您所描述的内容确实是开发人员对外键的一般方法,我认为它们是误导或天真的.当然,很有可能有充分的理由说明为什么外键约束不能或不应该应用于任何给定系统中的某些特定属性.也许这就是明显的修辞背后的真正原因.
我的建议.如果您是相关系统的利益相关者,请不要与开发人员交谈,与开发经理或拥有该系统的任何人交谈.通过具体示例来支持您的案例,其中缺乏参照完整性会产生负面影响或带来未来风险.
如果您没有当前与RI相关的问题,那么您可能主要关注的是改进未来工作的政策或开发方法.与数据库经理,DBA或负责标准和信息风险的人员交谈.考虑为开发团队的利益投资一些培训,指导或咨询.