我最近一直在想.让我们说我们正在使用JSF
Spring JPA / Hibernate(或任何其他技术)进行webapp,并且假设我们有一个“User”实体.我们希望用户拥有唯一的登录信息.如果我们想要这样做,那么我们可以在“登录”列上放置一个@UniqueConstraint,但我们的应用程序仍然必须在用户注册期间检查用户输入是否有效(唯一),没有这个并且只有数据库约束我们只会得到一个错误.这让我想到,DB约束真的有必要/有帮助吗?当他们试图给我们任何好处时,我能想到的唯一两次就是有人试图破解我们(但我想我们的应用程序应该是sql注入证明)或者我们尝试手动更改数据库内容(不应该真的发生了).实际上,现在我考虑一下,DB约束一般是必要的/良好实践吗?就像弦乐的长度等
解决方法
对我来说,绝对是的,请参阅Dan Chak的
Database as a Fotress,来自97 Thinks Every Software Architect应该知道.他说这比我做得好多了.