title: How to structure a database schema to allow for the "1 in a million" case?
body: <p>Among all the tables in my database, I have two which currently have a <code>Many-to-Many</code> join. However, the actual data population being captured <em>nearly always</em> has a <code>One-to-Many</code> association. </p>
  
  <p>Considering that I want database look-ups (doctrine queries) to be as unencumbered as possible, should I instead:</p>
  
  <ul>
  <li>Create two associations between the tables (where the second is only
  populated in these exceptional cases)?</li>
  <li>Change the datatype for the association (eg to a <code>text</code>/<code>tinyblob</code>) to record a mini array of the 2 (or technically even 3) associated records?</li>
  </ul>
  
  <p>This is what I currently have (although TableB-> JoinTable is usually just one-to-one):</p>
  
  <pre><code>TableA.id --&lt; a_id.JoinTable.b_id &gt;-- TableB.id
  </code></pre>
  
  <p>So, I am looking to see if I can capture the 'exceptions'. Is the below the correct way to go about it?</p>
  
  <pre><code>TableA.id     TableB.id
         +----&lt; TableB.A_id1
         +----- TableB.A_id2
         +----- TableB.A_id3
  </code></pre>