title: How to store a list of each user's items in MySQL?
body: <p>If each user in a site can enter a comma-separated list of items that they type in (<strong>not</strong> from a pre-determined list!), how should we store that list for each user in MySQL so that items can be matched across users with the same items?</p>
  
  <ol>
  <li><p>I know we shouldn't store the comma-separated string they've inputed as a <code>VARCHAR</code> in the DB, so how should it be stored?  Should a new table <code>ItemsList</code> be created where each row is a <code>UserID -&gt; ItemName</code> (e.g. if user ID <strong>101</strong> enters "<strong>Matches, Gun, Alcohol</strong>", we would add 3 rows to <code>ItemsList</code> as <code>101 -&gt; 'Matches', 101 -&gt; Gun, 101 -&gt; Alcohol</code>) ?  </p></li>
  <li><p>If so, what <code>PRIMARY KEY</code> should be used for that table?  </p></li>
  <li><p>What <code>indexes</code> should be set to make both the retrieval and matching of items as fast as possible? </p></li>
  <li><p>Lastly, what query should be used to find all the users that have at least one Item in common with another user?</p></li>
  </ol>