Нет короткого хорошего или плохого ответа на эту проблему, потому что это зависит от многих вещей.
- У вас есть много типов продуктов?
- Как вы думаете, каждыйиз них будут развиваться (подумайте, что произойдет, когда вы добавите новые поля к продуктам)?
- Нужно ли обрабатывать «варианты» продуктов?
- Намерены ли вы добавить полностьюновые виды продукции?
и т. д.EAV - это, вероятно, хороший способ, если вы ответите, если ответите «да» на некоторые или все эти вопросы.
Что касается C #, в прошлом я реализовал с ним каталог данных EAV и использую Entity Framework поверх SQL Server (то есть СУБД).Это работало хорошо для меня.
Но если вам нужно работать со многими продуктами, производительность может быстро стать проблемой.Вы также можете найти решение «NoSQL», вы об этом думаете?
Просто имейте в виду, что объект вашей модели не должен соответствовать вашей модели данных.Например, вы могли бы идеально иметь объект со строгой типизацией для каждого типа продукта, если вам это нужно.