<分区>
在研究该主题时,我看到了这篇文章:Should you enforce constraints at the database level as well as the application level?
回答该问题的人声称我们应该强制执行数据库约束,因为它“更容易、完整、灵活”。
我提出这个问题的原因是因为我最近在一个非常健壮的系统中进行维护工作。由于业务规则发生变化,其中一个数据列曾经有 CHAR(5)
现在接受 8 个字符。这个表有很多依赖关系,还会影响数据库中的许多其他表,还会影响一些其他系统,因此将大小增加到 CHAR(8)
实际上是不可能的。
所以我的问题又回到了数据库设计——如果你减少甚至消除数据库约束的需要,不是会容易得多吗?如果发生上述情况,您所要做的就是更改前端或应用程序级别的验证,以确保用户在该字段中输入 8 个字符。
在我看来,我们应该尽量减少数据库约束,以预测 future 数据结构的任何变化。你的想法是什么?