title: A seperate table for the posts which each user has liked - practical or not?
body: <p>In a social networking site I'm making, I need some way to store which posts a user has 'liked', to ensure they can only 'like' each post one time. I have several ideas.</p>
  
  <ul>
  <li>A seperate table for each user, to store all of the different posts' IDs which they've liked as rows in said table.</li>
  <li><p>A space-seperated string of post IDs as a field in the table <code>users</code>.</p></li>
  <li><p>A seperate table for each <em>post</em>, storing all of the different users' IDs which have liked said post as rows in the table.</p></li>
  </ul>
  
  <p><em>note, <code>users</code> is a table containing all of the site's users, with their ID, username, etc.</em></p>
  
  <p>-</p>
  
  <p>Initially I liked the idea of a seperate table for each user, but I realised this might be more trouble than it's worth.</p>
  
  <p>So I thought a space-seperated string for each row in <code>users</code> might be a good idea, since I wouldn't have to start working with many more tables (which could complicate things,) but I have a feeling using space-seperated strings would lower performance significantly more than using additional tables, especially with a greater amount of users.</p>
  
  <p>Essentially my question is this: <strong>Which, out of the aforementioned methods of making sure a user can only like a post once, is the most practical?</strong></p>