关于更少的检查约束是否更好或更多的任何建议?如果有的话,它们应该如何分组?
假设我有 3 列VARCHAR2(1 BYTE)
,每列都是 'T'/'F' 标志。我想为每一列添加一个检查约束,指定只IN ('T', 'F')
允许使用字符。
我是否应该有 3 个单独的检查约束,每列一个:
COL_1 IN ('T', 'F')
COL_2 IN ('T', 'F')
COL_3 IN ('T', 'F')
或单个检查约束:
COL_1 IN ('T', 'F') AND COL_2 IN ('T', 'F') AND COL_3 IN ('T', 'F')
我的想法是最好将这三个分开,因为这些列在逻辑上彼此无关。我将有一个检查多个列的检查约束的唯一情况是,一个列中的值与另一列中的值之间是否存在某种关系,例如:
(PARENT_CNT > 0 AND PRIMARY_PARENT IS NOT NULL) OR (PARENT_CNT = 0 AND PRIMARY_PARENT IS NULL)