Ile rodzajów produktów oczekujesz? Czy każdy z nich ma własną logikę aplikacji?
Możesz zrobić uogólniony model zwany modelem „wartości atrybutu jednostki”, ale ma on WIELE pułapek, gdy próbujesz poradzić sobie z określonymi właściwościami produktu. Proste zapytania wyszukiwania czasami zamieniają się w prawdziwe koszmary. Podstawowa idea polega na tym, że masz tabelę, która przechowuje identyfikator produktu, nazwę właściwości (lub identyfikator w tabeli właściwości) i wartość. Możesz także dodać tabele, aby przechowywać szablony dla każdego typu produktu. Tak więc jeden zestaw tabel powie ci dla danego produktu, jakie właściwości może on mieć (prawdopodobnie wraz z prawidłowymi zakresami wartości), a inny zestaw tabel powie ci, jakie są te wartości dla każdego pojedynczego produktu.
Ostrzegałbym jednak przed używaniem tego modelu, ponieważ wydaje się to naprawdę zręcznym pomysłem, dopóki nie będziesz musiał go faktycznie zaimplementować.
Jeśli liczba typów produktów jest rozsądnie ograniczona, skorzystam z drugiego rozwiązania - jednej głównej tabeli produktów z atrybutami podstawowymi, a następnie dodatkowych tabel dla każdego konkretnego typu produktu.