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.
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.
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.
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.