title: Naming convention for SQL tables under certain circumstances
body: <p>I'm currently creating the database schema for a new Rails project and I want to things right, so I better ask!</p>
  
  <p>Imagine this: I have a table called "<em>articles</em>" and these articles should have tags. The thing I would do now is relatively simple. Create another table called "<em>tags</em>" and a third one called "<em>article_tags</em>".
  Every article and tag has a unique id and "<em>article_tags</em>" is the mapping table which brings the right article ids and tag ids together.</p>
  
  <p><strong>Tables:</strong></p>
  
  <pre><code>- articles
  - tags
  - article_tags (mapping)
  </code></pre>
  
  <p>The "problem" I currently have is this: Not only articles have tags but also my "<em>users</em>" (another table). These tags have to be in two different tables which would then result in some pretty odd naming.</p>
  
  <p><strong>Tables:</strong></p>
  
  <pre><code>- articles
  - article_tags (no mapping)
  - article_article_tags (mapping???)
  
  - users
  - user_tags (no mapping)
  - user_user_tags (mapping???)
  </code></pre>
  
  <p><strong>Do you have any (general) tips how to improve the naming</strong> of these tables because what you can see above doesn't make me very happy...</p>