"惩罚"开发人员或自动修复?触发与约束

WW.*_*WW. 0 triggers database-design constraints

假设我有一个数据库列应始终为大写.

以下是一些想法:

1)创建一个列约束: col = UPPER(col)

2)创建一个插入/更新前行触发器,设置: col = UPPER(col)

通常,对数据库数据的约束越多越好,并且触发器可能是神秘的和坏的.假设编写代码的开发人员在同一个组织中,因此他们编写的代码可以由我们修改.

你会使用哪种方法?为什么?

它必须是大写的,因为有问题的数据实际上总是大写(它最初是由各种第三方以这种方式打印的).对于此特定字段,大写与小写没有任何意义.

Mat*_*ell 11

这取决于为什么列需要大写,但一般来说我会选择约束.

我不喜欢在将数据插入数据库时​​更改数据的内容.这意味着我写的和我下次读的内容不匹配.

如果用户输入了文本,请考虑添加包含大写版本的额外列.这样,您始终可以显示用户输入文本的方式