Hur många produkttyper förväntar du dig? Har de var sin applikationslogik?
Du kan göra en generaliserad modell som kallas "entitetsattributvärde"-modellen, men den har MÅNGA fallgropar när du försöker hantera specifika egenskaper hos en produkt. Enkla sökfrågor förvandlas ibland till riktiga mardrömmar. Grundidén är att du har en tabell som innehåller produkt-ID, egenskapsnamn (eller ID i en egenskapstabell) och värdet. Du kan också lägga till tabeller för att hålla mallar för varje produkttyp. Så en uppsättning tabeller skulle berätta för en given produkt vilka egenskaper den kan ha (möjligen tillsammans med giltiga värdeintervall) och en annan uppsättning tabeller skulle berätta för varje enskild produkt vad värdena är.
Jag vill dock varna starkt för att använda den här modellen, eftersom det verkar vara en riktigt smart idé tills du faktiskt måste implementera den.
Om ditt antal produkttyper är rimligt begränsat, skulle jag välja din andra lösning - en huvudprodukttabell med basattribut och sedan ytterligare tabeller för varje specifik produkttyp.