Jestem teraz na etapie tworzenia struktury tabel cech produktów:
Oto co wymyśliłem:

Krótkie wyjaśnienie tabel:
features_has_categories - łączy daną cechę z daną kategorią (aby przy danej kategorii były dostępne tylko określone cechy)
features - nazwy cech
features_defaults - zserializowana tablica z domyślnymi wartościami dla danej cechy (np. cecha kolor będzie miała tutaj listę kolorów które wyświetlą się w formie listy rozwijanej)
features_values - wartości danych cech (jedna wartość może należeć do kilku produktów, zawarte jest to w tabeli items_has_features_values). Tutaj są 2 rodzaje pola jeden jest dla typu sring drugi dla wartości typu int. Służy to szybszemu wyszukiwaniu danej cechy w bazie (w tym wypadku typu int)
items_has_features_values - mówi która wartośc należy do danego produktu, jedna wartość może być połączona z wieloma produktami (jeden do wielu)
features_units - jednostki dla danej cechy (np: dm, cd, m, km itp...)
Co o tym myślicie ? Troche może skomplikowane ale chce uniknąć powtarzania i ułatwić integracje z wyszukiwarką produktów.