By całość była uniwersalna i elastyczna powinieneś wartości parametrów trzymać w zwykłym polu tekstowym. Każdy parametr natomiast powinien mieć identyfikator typu danych (np. 1 to ciąg znaków, 2 to liczba). By prawidłowo zrealizować wyszukiwanie powinieneś odpowiednio rzutować dane wartości parametru (funkcja CAST) na odpowiedni typ danych i stosować operatory właściwe dla typu danych (np. dla 1 LIKE, dla 2 BETWEEN).
Inny problem to to czy produkt z zestawem parametrów ABC odniesieniu do tego samego produktu z parametrami XYZ to osobny rekord w bazie czy nie. Przykładowo: ubrania czy obuwie można robić jako 1 produkt bo atrybuty (kolor czy rozmiar) nie maja wpływu na cenę, natomiast w przypadku laptopów ten sam sprzęt ale o innych parametrach będzie miał różne ceny. Każde rozwiązanie ma swoje plusy i minusy, nie ma moim zdaniem złotego środka. Można oczywiście połączyć te 2 podejścia ale wtedy robi sie mała rzeźnia