Creating high performance (software) DEV teams that know how to effectively implement CI/CD = Continuous Improvement/Continuous Discernment. Whether you're just starting a DEV team or have a team of DEV teams, I can help you on the journey of delivering better software.
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.