No, your setup is fine.
You have setup a one-to-many relationship there.
It only becomes a problem if you need to individually track information about each individual component AS IT RELATES TO AN INDIVIDUAL PRODUCT.
For example, if you need to keep track of specific information about the very specific “velvet canvas” that is very specifically being used for “chair 2” only.
Only under those circumstances would you need to create a many-to-many relationship.
Otherwise, a one-to-many relationship is fine.