title: What's the best way to structure these relationships? To HABTM or not?
body: <p>Just looking for some advice on how to structure my relationships in an app that I'm making.  I have the following models:</p>
  
  <pre><code>activity # golf, karaoke
  event    # golf competition followed by all-night karaoke boat party
  post     # write-up of the golf and karaoke event mentioned above
  gallery  # photos from the golf and karaoke event
  </code></pre>
  
  <p><strong>Question 1</strong></p>
  
  <ul>
  <li>each <strong>event</strong> can involve <em>more than one activity</em> </li>
  <li>each <strong>activity</strong> can be associated with <em>more than one event</em></li>
  </ul>
  
  <p>Do I need a <strong>habtm</strong> between activity and event?</p>
  
  <hr>
  
  <p><strong>Question 2</strong></p>
  
  <ul>
  <li>each <strong>event</strong> can be reported in <em>more than one blog post</em>  </li>
  <li>a <strong>post</strong> can report on <em>more than one event</em></li>
  </ul>
  
  <p>Should I use a <strong>habtm</strong> between event and post?</p>
  
  <hr>
  
  <p><strong>Question 3</strong></p>
  
  <ul>
  <li>each <strong>post</strong> can include images from <em>more than one gallery</em>  </li>
  <li>a <strong>gallery</strong> can be included in <em>more than one post</em></li>
  </ul>
  
  <p>Is this another <strong>habtm</strong>?</p>
  
  <hr>
  
  <p><strong>Question 4</strong> - It's conceivable that the admins might want to link 1 or more sets of photos with 1 or more events, without creating a blog post to tie everything together.  Would it be advisable to declare a <strong>habtm</strong> relationship between galleries and events?</p>
  
  <hr>
  
  <p><strong>For bonus points:</strong>  Is an app with this many habtm's likely to be slower than one which enforces one-to-many relationships between the same models?  Is there a suggested limit to the number of habtm relationships an app an have before it becomes too complex?</p>
  
  <p>Thanks in advance</p>