Как структруировать БД?
Не думаю, что параметры стоит хранить в строке. Будет затруднительно выбрирать товары по параметрам.
Предлагаю вынести параметры в отдельную таблицу, в которой будут содержаться поля id, id товара, название параметра
Категории:
id название и т.п.

Характеристики 
id | название | тип (чекбокс, список, текст, строка и т.п.) | варианты выбора, если есть, в каком-нить формате (json, к примеру) 

Пример: 
1 | Пол | list | [ «женский», «мужской» ]
2 | Цвет | list | [ «синий», «красный», «зеленый» ] 

Это нужно для управления выводом формы редактирования/добавления товара какой-либо категории. В итоге у вас будет один и тот же код везде и не нужно заводить таблицу под каждую категорию отдельно. В данном случае ясно, что тип поля list, значит, это select либо группа радиобаттонов, к примеру. А варианты выбора распаковываются из json.

Товары
id | id категории | название…

Как я поняла, у вас товар попадает в одну категорию, значит, можно сделать один ко многим.

Связки:
id характеристики | id категории 

Это чтобы было ясно какие поля для редактирования товара доступны в категории, и чтоб можно было привязать характеристику к нескольким категориям.

id товара | id характеристики | значение характеристики

Ну это понятно.

Таким образом, при добавлении категории юзер может сам добавить туда нужные характеристики (или выбрать из уже существующих) и сохранить. Ну а при добавлении товара в эту категорию отрисуется красивая формочка, где можно заполнить значения всех характеристик.