我需要你的智慧,我正在和另一个人辩论什么时候建议将业务规则的代码放入数据库约束或应用程序业务层内部?
有一个特定的字段用于工厂中机器设置的多个计算。今天,我们遇到了一个问题,因为文件维护人员没有指定必填字段,而该字段不知何故未在 ERP 的用户界面中验证。该字段会在计算中导致被零除错误,从而导致 PLC 机器崩溃并停止生产以重新启动 PLC 机器。
因此,我填写了一个文件维护请求,以填充所有值为零的字段,并向数据库管理员提出了第二个请求,要求在数据库中为该字段创建一个约束,以便如果必填字段为 0,则该记录将被拒绝。
DBA 拒绝了我的请求并告诉我验证 UI 或业务逻辑层中的特定字段。我告诉他,即使我这样做,Microsoft Access 中的某个人或任何其他具有正确权限的工具都可以将零分配给特定字段,这将再次停止生产。他回答我:“那又怎样?你希望我将业务逻辑层的所有业务规则重新编程为数据库约束吗?”
之后,我就在想“什么时候把业务规则放到业务应用层,或者放到数据库约束中”这个问题?
谢谢!塞巴斯蒂安