Database design 使用检查约束-从J2EE应用程序设计的角度来看,这有多有用?
说: 检查约束用于限制可以设置的值范围 放在一列中 如果我们在单个列上定义一个CHECK约束,它只允许某些 此列的值 如果我们在一个表上定义一个检查约束,它可以限制表中的值 基于中的值的某些列 行中的其他列 从设计web应用程序的角度来看,在DB上添加此约束肯定有助于避免数据损坏,并且可以在web应用程序的验证层中避免检查字段级数据的额外验证级别。我在这里看到的唯一问题是,从数据库返回的错误消息没有意义,无法显示给最终用户 你怎么说?或者我会问,您在什么情况下使用了此约束?检查约束(与其他约束一样)是为了保证额外的一致性,但它们不得用于替换应用程序中的验证逻辑,正如您所提到的,验证逻辑应显示有意义的错误消息,并且应(至少)完成在表示层中,在访问数据库之前 即使它们看起来像是验证逻辑的重复,约束仍然是有用的,因为Database design 使用检查约束-从J2EE应用程序设计的角度来看,这有多有用?,database-design,web-applications,jakarta-ee,Database Design,Web Applications,Jakarta Ee,说: 检查约束用于限制可以设置的值范围 放在一列中 如果我们在单个列上定义一个CHECK约束,它只允许某些 此列的值 如果我们在一个表上定义一个检查约束,它可以限制表中的值 基于中的值的某些列 行中的其他列 从设计web应用程序的角度来看,在DB上添加此约束肯定有助于避免数据损坏,并且可以在web应用程序的验证层中避免检查字段级数据的额外验证级别。我在这里看到的唯一问题是,从数据库返回的错误消息没有意义,无法显示给最终用户 你怎么说?或者我会问,您在什么情况下使用了此约束?检查约束(与其他约束一
- 验证逻辑可能有缺陷,或者被遗忘
- 除了webapp(数据库脚本等),可能还有其他写入数据库的方法
- 在执行验证逻辑和检查约束之间,另一个事务可能已经更改了数据库中的数据