Александр Дегтярев,
я не совсем понимаю... можно посмотреть что есть в ГИТе
не все же файлы попадают в GIT, на некоторые стоит игнор, некоторые данные сохранят ГИТ...
есть товар, у него есть варианты в таблице variants
так как у вариантов не известно сколько будет полей (а скорее всего очень много), то выносим эти поля в таблицу variant_characteristics с связующей таблцей variant_values , то есть это связь многие ко многим.
Например: есть варианты с выбором размера и длины, то в таблице variant_characteristics заводим эти значения, а в таблице variant_values указываем id этих значений, id варианта и само значение