title: Database Normalization and Structure
body: <p>I have a data stucture that has the following tables</p>
  
  <pre><code>Customers
  Transactions (Type A)
  Transactions (Type B)
  </code></pre>
  
  <p>We are adding a <code>Comments</code> Table</p>
  
  <p><code>Customers</code> have one more more of <code>Transactions A</code> and <code>Transactions B</code>
  <code>Comments</code> can be related to either the <code>Transactions</code> or the <code>Customer</code></p>
  
  <p>We are having an internal discussion on the database format.  </p>
  
  <p>One side wants to create a Comments table and 3 cross tables.
  One side wants to create a Comments Table with a foreign key to the customer and 2 nullable keys to the transactions.</p>
  
  <p>Is there a Normal Form rule that says one is better than the other? Is there any consensus? </p>
  
  <p>EDIT:</p>
  
  <p>More answers and specifics</p>
  
  <ul>
  <li>Comments will never be associated with more than one customer</li>
  <li>Comments will never be associated with more than one transaction</li>
  <li>Comments will only ever be associated with Transaction A, Transaction B, or neither; but never both</li>
  <li>Customers and Transactions may have 0 or more comments</li>
  </ul>