aw *_*rud 3 sql oracle database-design check-constraints
关于是否更少检查约束更好或更多的任何建议?如果有的话,他们应该如何分组?
假设我有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')
Run Code Online (Sandbox Code Playgroud)
或者一个检查约束:
COL_1 IN ('T', 'F') AND COL_2 IN ('T', 'F') AND COL_3 IN ('T', 'F')
Run Code Online (Sandbox Code Playgroud)
我的想法是最好将这三个分开,因为列在逻辑上彼此无关.唯一的情况是我会检查一个以上列的检查约束,如果一个值与另一个值之间存在某种关系,例如:
(PARENT_CNT > 0 AND PRIMARY_PARENT IS NOT NULL) OR (PARENT_CNT = 0 AND PRIMARY_PARENT IS NULL)
Run Code Online (Sandbox Code Playgroud)
保持分开,它们是不同的列.此外,错误消息将显示失败的检查约束名称,您将更好地了解问题所在.未来的开发人员会因为他们在一起而感到困惑,或者因为他们在不同的专栏上而没有注意到他们.
| 归档时间: |
|
| 查看次数: |
5017 次 |
| 最近记录: |