There are a couple of ways to do this. Without knowing exactly what information you have at a given time this may or may not be correct.
I show a table for relating activities to subcategories, but I do not think I would do that. There are some pros and cons. I think the problem is maintaining that table gets hard and it is different for each product. If not that table has to be really precise.
For example I could have some cleats that work for Football, American Football, Rugby . I have another specific pair that only really work for American Football. So instead of establishing this relationship in a Activity_SubCategory table it is specific to a product.
When you enter a supplier into a DB I assume you record more information than just the supplier name.
But what information about that supplier do you know.
Maybe you only know the Categories that they carry
Maybe you know the sub categories
Maybe you only know the activities
Or maybe you do not care until you enter products into the database.
I provided a way to do one or all of these.
You could assign multiple categories if that is all you know
you could assign multiple subcategories and in turn you know the category
If you decide that you want to relate subactivities to categories than you also know activities through the subcategories (I am not showing that)
You could assign just activities if that is all you know
In theory that is possible, but seems like a pain to manage, and are your really going to need that. Figure out what you really need, and what is doable. If not you will have three subforms to build and choose to fill out. If you think you only know and need the categories then go with that.
Now you have a chicken and egg issue. Do you have products in the database for the supplier. If you do you can then assign Products to the supplier.
When you enter a product in the db you pick the Supplier from tbProductsSupplier. This form design gets complicated. You cannot pick the supplier until you add to that that table. But you cannot add to that table until created the product. So your form would have to check if the product and supplier are related if not allow you to pick any supplier and add to the table.
This also Depends. When you create a Product you can list all potential suppliers in tblProduct_Suppliers. This would be a subform. But depends what level you are tracking. If it is a generic product or a supplier specific product.
Are you tracking on ProductA and its potential suppliers or do you at a specific records
Product A_ From Supplier 1
Product A_ From Supplier 2
The way I did it was the latter. You identify the actual supplier in the IDSupplier_FK. However that field goes away if you are tracking at only the generic Product.
When you enter a product you can then assign the SubCategories and related Activities. Because I think this many to many between subcategories and activities is complicated to maintain in a single table I make it product specific. tblProductSubCategoriesActivities Here again you do not need to store the category because it come from the subcategory.
That is my guess how I would do it. This is more an art than a pure science and there are pros and cons for different designs. Hopefully someone else provides a different approach.
Again some of it depends on what information you have at a given time and what level of detail you really need to track. Theory is one thing and what you really are going to do and maintain is another. The fact that you can make complicated many to manys between subcategories and activities is different than can you fully populate it and make ti flexible for both products and suppliers.