Originally Posted by
jzwp11
Since a product/supplier combination can have many attributes that describes a one-to-many relationship. For example, let's say that product A123 from Supplier B is compliant with HACCP and cGMP that would be 2 attributes. Similarly, HACCP compliance may apply to many product/supplier combinations, so another one-to-many relationship. Since we have 2 one-to-many relationships between the same two entities (attributes and product/supplier combinations), we have a many-to-many relationship which requires as before a junction table.
What I am basically saying is that the attributes should be captured as records not as fields within a table. What would happen if you added a new attribute? You would have to alter your table structure and every associated form, query or report. With the approach I describe, you would just add a new attribute record to the attribute table and then associated that attribute to the applicable product/supplier combination (via a record in tblProductSupplierAttributes).
Just for something else to consider. Since your company also supplies products, wouldn't your company be included in the supplier table and your products included in the product table with those of your suppliers? You would then associate your products to your own company in the product/supplier junction table and for that matter, you can then associate the applicable attributes to your product. All of this can be done within the same group of tables already described. Also, if you use solvents or additives in making your products, you can capture that as well.