title: Table and entity naming convention
body: <p>I read similar question (<a href="https://stackoverflow.com/questions/4702728/relational-table-naming-convention">Relational table naming convention</a>), but unfortunately I couldn't find the answer for my problem.</p>
  
  <p>I have products. Products can have images and comments. They are one-to-many relationships.</p>
  
  <p>The table and entity names are the following:</p>
  
  <ul>
  <li>product (Product)</li>
  <li>product_comment (ProductComment)</li>
  <li>product_image    (ProductImage)</li>
  </ul>
  
  <p>Product is independent, comment and image depends on product. No problems so far.</p>
  
  <p>But i need to classify products into categories (one-to-many).</p>
  
  <p>Category can exist on its own, it's independent, so i can't use the <em>product_category (ProductCategory)</em> naming (it would express that products can have categories).</p>
  
  <p>The naming without any prefix (<em>category (Category)</em>) is also not good, because there could be other categories in the database (categories for users etc.).</p>
  
  <p>So it seems for me that the only solution is:</p>
  
  <ul>
  <li>category (Category)</li>
  <li>category_product (CategoryProduct)</li>
  <li>category_product_Comment (CategoryProductComment)</li>
  <li>category_product_Image (CategoryProductImage)</li>
  </ul>
  
  <p>But I'm not happy with that either. It expresses that categories can have products...</p>
  
  <p>Any help is highly appreciated!</p>
  
  <p>Thank you!</p>