我总是倾向于通过服务层“保护”我的持久层免受侵犯。但是,我开始怀疑它是否真的有必要。花时间使我的数据库健壮,建立关系和数据完整性,但实际上它从未真正发挥作用,这有什么意义呢?
例如,考虑一个User
在字段上具有唯一约束的表Email
。我自然会想在我的服务层中编写拦截器代码,以确保在尝试添加任何内容之前,正在添加的电子邮件尚未在数据库中。在过去,我从未真正看到它有什么问题,但是,随着我接触到越来越多的最佳实践/设计原则,我觉得这种方法不是很干。
那么,始终确保进入持久层的数据确实“有效”是正确的,还是让无效数据进入数据库并处理错误更自然?