title: Database table naming; name_verb_name conventions for many-to-many intersect tables
body: <p>I've read around on SO for other questions on the subject, and I'm aware that naming conventions are an often subjective topic, however I feel this is less general (<em>and less inquired about</em>) than <code>PascalCase</code> versus <code>under_scores</code>.</p>
  
  <p>Given a simple commerce system, with <code>User</code> and <code>Product</code> entities; a given user can purchase items, and the transaction records are stored in a <code>User_Product</code> table. (<em>sure, <code>Purchase</code> is more semantic, but just follow me here</em>)</p>
  
  <p>Anyways, if I were to introduce the ability to "Vote" on products, and "Favorite" products, no longer does the <code>User_Product</code> scheme remain unambiguous.</p>
  
  <p>Is it an uncommon (<em>and therefore I would assume less acceptable</em>) naming scheme to use <code>Name_Verb_Name</code> as follows:</p>
  
  <ul>
  <li><code>User_Purchase_Product</code></li>
  <li><code>User_Vote_Product</code></li>
  <li><code>User_Favorite_Product</code></li>
  <li>and so forth...</li>
  </ul>
  
  <p>I haven't had the opportunity to work on any "enterprise level" systems in my work, so in my personal development I'm fraught with questions about naming schemes, trying to adopt the most prevalent.</p>
  
  <p>I understand that consistency of use typically trumps the semantics of the convention chosen, but again; trying best to standardize my conventions as best as possible.</p>
  
  <p>(<em>note that as I mentioned, <code>Purchase</code> is likely a better choice semantically for the above, but I'm curious more generally, when such semantics may not exist or be concise enough</em>)</p>