是否必须对DB有独特的约束?

Mat*_*zyk 8 database database-design constraints unique-constraint

我最近一直在想.假设我们正在使用JSF + Spring + JPA/Hibernate(或任何其他技术)进行webapp,并且假设我们有一个"用户"实体.我们希望用户拥有唯一的登录信息.如果我们想要这样做,那么我们可以在"登录"列上放置一个@UniqueConstraint,但是我们的应用程序仍然需要在用户注册期间检查用户输入是否有效(唯一),没有它,并且只有数据库约束我们只会得到一个错误.这让我想到,DB约束真的有必要/有帮助吗?只有当有人试图破解我们时,我能想到的唯一两次才会想到(但我想我们的应用程序应该是SQL注入证明)或者我们尝试手动更改数据库内容(不应该真的发生了).实际上现在我考虑一下,DB约束在一般必要/良好实践中是什么?就像弦乐的长度等.

Jon*_*man 8

对我来说,绝对是的,请参阅Dan Chak 撰写数据库作为97 Thinks Everys Software Architect应该知道的.他说这比我做得好多了.