Итак, я работаю над приложением электронной коммерции, и мой клиент хочет иметь возможность создавать категории и продукты ... очевидно.Теперь предположим, что у клиента будет около 100 категорий и 20 000 товаров.
Клиенту нужна возможность создавать свойства категории, которые имеют смысл для фильтрации .... таким образом, жесткие диски категории могут иметь такие свойства, как:
- Емкость
- Обороты
- Форм-фактор
В то время как категория Проекторы могут иметь такие свойства, как:
- Яркость
- Коэффициент контрастности
- Собственное разрешение
Мой вопрос заключается в том, как решить проблему динамического создания пользовательских свойств, но возможность использовать эти свойства для поиска, фильтрации и создания отчетов?
Создание отдельной таблицы и объекта для каждой категории невозможно, поскольку я понятия не имею, какие категории они будут создавать (например, HardDriveProperties, ProjectorProperties).
Я подумал, что, возможно, мне удастся создать дополнительный столбец в базе данныхи сериализовать пользовательские свойства как JSON, но для этого все равно потребуется, чтобы я создал конкретный объект свойств для каждой категории для deseriaдобавить JSON в общий список ProductProperties .... с которым, я думаю, может быть довольно дорого работать.
Как другие решают эту проблему?