title: One check constraint or multiple check constraints?
body: <p>Any suggestions on whether fewer check constraints are better, or more?  How should they be grouped if at all?</p>
  
  <p>Suppose I have 3 columns which are <code>VARCHAR2(1 BYTE)</code>, each of which is a 'T'/'F' flag.  I want to add a check constraint to each column specifying that only characters <code>IN ('T', 'F')</code> are allowed.</p>
  
  <p>Should I have 3 separate check constraints, one for each column:</p>
  
  <pre><code>COL_1 IN ('T', 'F')
  
  COL_2 IN ('T', 'F') 
  
  COL_3 IN ('T', 'F')
  </code></pre>
  
  <p>Or a single check constraint:</p>
  
  <pre><code>COL_1 IN ('T', 'F') AND COL_2 IN ('T', 'F') AND COL_3 IN ('T', 'F')
  </code></pre>
  
  <p>My thoughts are it is best to keep these three separate, as the columns are logically unrelated to each other.  The only case I would have a check constraint that examines more than one column is if there was some relationship between the value in one and the value in another, e.g.:</p>
  
  <pre><code>(PARENT_CNT &gt; 0 AND PRIMARY_PARENT IS NOT NULL) OR (PARENT_CNT = 0 AND PRIMARY_PARENT IS NULL)
  </code></pre>