BS
Brian Seim
The DEV Team Coach
I'm a developer of over 20 years experience and I've been building relational databases the whole time with varying degrees of normalization. I like it best when the problem is given to me as you stated above.
From your statement, it seems like you are trying to design the database. Instead, you hired a developer, and that is what they do. Have him or her design the database. Give them all the information you have and answer all their questions in a timely manner and you'll get what you need.
I'm not sure of your area of expertise or the relationship with and faith you have in your developer, but I would provide him the information from your question above. From that he/she should fire back a bunch of questions to you such as:
1. does every product require every choice?
2. Can a product have multiple options for a given choice?
3. Are the options for choices different dependent on the product?
4. Is there a higher level to consider of product categories?
... I think you get the idea.
Using this dialog can help you both think of concepts or situations you both have missed and provide you with a more robust solution.
I'd be happy to get on a call with you to discuss this further but it sounds like you have everything you need except maybe confidence in your developer(s). Best of luck.