チェック制約が少ない方が良いのか、それとも多いのかについての提案はありますか?仮にあったとしても、それらをどのようにグループ化する必要がありますか?
である3つの列がありVARCHAR2(1 BYTE)
、それぞれが「T」/「F」フラグであるとします。IN ('T', 'F')
文字のみを許可するように指定するチェック制約を各列に追加したいと思います。
列ごとに1つずつ、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')
列は論理的に相互に関連していないため、これら3つを分離しておくのが最善だと思います。複数の列を調べるチェック制約がある唯一のケースは、ある列の値と別の列の値の間に何らかの関係があったかどうかです。例:
(PARENT_CNT > 0 AND PRIMARY_PARENT IS NOT NULL) OR (PARENT_CNT = 0 AND PRIMARY_PARENT IS NULL)