我正在研究像Web应用程序这样的电子商务。在一个案例研究中,我遇到了大规模数据验证的麻烦。企业应用程序中最佳实践是什么?
以下是一个场景:
对于货物系统。有一个“Cargo”对象,其中包含要随附的“Good”列表。每个“好”都有一个字符串字段,名为“类别”,指定它是什么样的“好”。如“易燃”,“脆弱”。
因此,验证有两次机会。对象的创建。或者在对象的数据库中存储。如果我们仅在存储阶段验证,当某些“良好”验证失败时,“货物”存储也会失败,并且需要删除先前存储的“商品”。这是低效率的。如果我们也在创建阶段验证。将存在重复的验证逻辑(检查外键,因为我将这些“类别”存储在数据库中,并检查构造函数)。
答案 0 :(得分:3)
如果要将多个记录保存到数据库,则应在单个事务中一次完成所有更新。因此,您将在保存之前验证所有对象。如果在保存期间出现问题,您可以回滚事务,回滚所有数据库更新(即您不必返回并手动删除记录)
理想情况下,您应该在服务器上进行验证,然后在保存数据之前,服务器验证应该将验证消息传播回用户/ UI。客户端/用户界面上的验证也很好,因为它更具响应性并减少了系统其余部分的开销。