Credo di aver già letto la tua domanda (e risposto) su un altro forum, ma non sono sicuro fossi tu.
Quello che consiglio è di utilizzare MariaDB invece di MySQL, perché ha una funzionalità che fa al caso tuo che sono le tabelle dinamiche:
https://kb.askmonty.org/en/dynamic-columns
Se invece vuoi/devi usare MySQL, in teoria esistono vari approcci e ognuno si porta dietro una serie di seccature. In genere di fa una tabella prodotti, che contiene le caratteristiche che riguardano tutti i prodotti (id, prezzo, descrizione...). E poi una serie di tabelle, una per ogni tipo di prodotto, che contengono l'id specifico del prodotto per la relazione.
Un altro approccio, che non mi piace, è fare una tabella per ogni tipo di prodotto ma senza una tabella comune. Il problema è che, se devi fare una query su tutti i tipi di prodotti, dovrai fare una serie di UNION e non hai un indice che velocizzerebbe l'operazione. Per semplificare la sintassi della query puoi almeno fare una vista che è una UNION tra tutte le tabelle e contiene tutte le colonne in comune.
Oppure puoi fare uno star database, o un ibrido tra uno star database e la prima soluzione. Ma non te lo consiglio perché comlichi tutte le query e molto probabilmente per la tua applicazione non ne vale la pena.