title: Database Design: Join tables on supertype/subtype
body: <p>I am sure I am not not the first person to come up with this question but I cannot find a good answer and I will admit that database design is not my primary strength.  </p>
  
  <p>Lets say I have a Product and this Product can have subtypes, Product A, Product B, Product C and Product D.  The supertype Product will have some common attributes, while the subtypes will have attributes specific to those subtypes.  Pretty standard supertype/subtype design.</p>
  
  <p>Now I have a Users entity.  A Product can have many User and a User can have many Product.  So ideally I would like a join table on these with some specific attributes about that join.  The problem I have is that I do not want to do a Product-User join table but more like a join with User and the Product subtype, so a ProductA-User, ProductB-User, ProductC-User, ProductD-User.  The reason being that join of these two entities has its own attributes specific to that Product and User join.</p>
  
  <p>Does this design make sense?  Or is there a better way to handle this type of behavior.  I like the standard supertype/subtype for my Products but I am not sure how to approach when I need to join those with other entities. </p>