When to create a new table if functionality is the same?
Quit thought (and MS SqlServer background).
Your order table will already have multiple tables, Header, Details.
You could 'link' your OrderDetails with the products directly...
Ok al basic design, but for Statistics and Query Oprimizers these direct links are gold, if yoy work with a relations table you cannot create a foreign key from that table to all tables as you don't know what parent value it will hold.
The parent could be a order, customer, product en the detail also order, customer, product, the kind of relation would be specified in a field.
Works fine for querying, that's not the issue, but on performance you would loose a lot i'm afraid.