title: DB Design for "has many" issue across tables vs stored lists
body: <p>Trying to figure out the best way to set up collection "lists" for users given the following data (pseudo code):</p>
  
  <pre><code>user table = id, name, email
  
  cars table = id, make, model
  
  user_cars table = user_id, car_id, rating
  
  collections table = id, user_id, name
  </code></pre>
  
  <p><strong>Facts</strong>:</p>
  
  <ul>
  <li><p>Users can have many cars</p></li>
  <li><p>Users can have many collections</p></li>
  <li><p>Individual cars can be in many collections</p></li>
  </ul>
  
  <p>The 2 options I see for allowing the user to have a list of collections are to either add a field to user_cars called <code>collection_list</code> and make the contents of that field a comma-sep list of collections that the user owns, like: 1,30,400</p>
  
  <p>or to add an additional table called <code>collection_entries</code> which contains <code>collection_id</code>, and <code>car_id</code>, each pointing to their respective collections.id and cars.id. The possible problem I see with adding another table is that the number of rows will get huge in that table. eg: 10,000 users x 10 collections each x 100 cars per collection = 1 million rows. </p>
  
  <p>Ideas?</p>