title: Pros and cons of a junction table between three tables, only two of which at any given time
body: <p>I am going to be have a many-to-many relationship across three tables, but the relationship will be between only one table (say TableA) and only one of the other two tables (say TableB and TableC) at a time. That is, I can have either one junction table</p>
  
  <pre><code>id | TableA_id | TableB_id | TableC_id
  </code></pre>
  
  <p>with a constraint to make sure that either TableB_id is null or TableC_id is null, or two junction tables</p>
  
  <pre><code>id | TableA_id | TableB_id
  id | TableA_id | TableC_id
  </code></pre>
  
  <p>What would be good criteria to determine which of these two possibilities I should use?</p>