代码之家  ›  专栏  ›  技术社区  ›  WW.

“惩罚”开发人员还是自动修复?触发器与约束

  •  0
  • WW.  · 技术社区  · 17 年前

    假设我有一个数据库列,它应该始终大写。

    这里有几个想法:

    col = UPPER(col)

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

    6 回复  |  直到 17 年前
        1
  •  11
  •   Matthew Farwell    17 年前

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

    如果文本是由用户输入的,请考虑添加一个额外的列,其中包含大写版本。这样,您就可以始终显示用户输入的文本

        2
  •  1
  •   Rex M    17 年前

    在大多数情况下,我会说(1),因为正如你所指出的,触发因素往往很糟糕/奇怪(尽管并不总是如此)。但在处理字符串大小写敏感性时,我倾向于将其视为特殊情况,并在过程中的每一步都对其进行修复。我不确定我这样做有什么具体的原因,只是“感觉”是对的。可能是因为至少从业务逻辑的角度来看,在我工作过的大多数环境中 FoO 总是相等 foo 总是相等 FOO .

        4
  •  0
  •   eglasius    17 年前

    或者增加自动化测试的覆盖范围,避免生产服务器上的额外负载。

        5
  •  0
  •   David Aldridge    17 年前

        6
  •  0
  •   HLGEM    16 年前