将数据验证完全委托(delegate)给数据库引擎约束是否是一种好的做法?
验证来自应用程序的数据并不能防止来自另一个软件(可能由另一个团队用另一种语言编写)的无效插入。使用数据库约束可以减少需要担心无效输入数据的点。
如果将验证同时放在数据库和应用程序中,维护就会变得乏味,因为您必须为谁知道有多少应用程序更新代码,从而增加人为错误的可能性。
我只是没有看到很多人这样做,查看来自自由软件项目的代码。
最佳答案
在输入时验证。在将其放入数据库之前再次验证。并具有数据库约束以防止错误输入。尽管如此,您可以打赌,不良数据仍会进入您的数据库,因此在您使用它时再次验证它。
似乎每天都有一些网络应用程序遭到黑客攻击,因为他们使用 Javascript 以表单或更糟糕的方式进行所有验证,并且人们找到了绕过它的方法。你必须提防这种情况。
偏执狂?我?不,只是经历过。
关于database - 防止错误数据输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/88962/