Ehm! Temo che hai proposto un quesito del tipo "il gatto che si morde la coda". Qualcosa mi ricorda un enigma in cui alcuni sono già inciampati. Si tratta della classica Torta con Ingredienti dove sia le Torte sia gli Ingredienti potrebbero essere i Prodotti. Non ricordo più dove ripescarla una di queste vecchie discussioni (molto interessanti direi).
Bando a sofismi filosofici, provo ad approcciare qualcosa.
Per me Lampada-Ikea-Piccola è un Prodotto diverso da Lampada-Ikea-Grande. Ovviamente anche Portalampada-Ikea-Piccola è diverso da Portalampada-Ikea-Grande. Ho già elencato 4 Prodotti diversi con 4 IDProdotto diversi. Io penserei a una tabella Prodotti con i seguenti campi:
IDProdotto (contatore, chiave primaria)
TipoProdotto
Marca
Forma
Adesso ogni Prodotto deve essere associato a tutti gli altri suoi compatibili. Quindi una tabella Compatibilità con i seguenti campi:
IDCompatibilità (contatore, chiave primaria)
IDProdotto (numerico)
IDProdottoCompatibile (numerico)
2 linee di relazione:
Prodotti.IDProdotto uno-a-molti con Compatibilità.IDProdotto
Prodotti.IDProdotto uno-a-molti con Compatibilità.IDProdottoCompatibile
Per rendere il discorso completo, potresti prevedere le seguenti tabelle "satelliti":
TipiProdotti
TipoProdotto (testo, chiave primaria)
Marche
Marca (testo, chiave primaria)
Forme
Forma (testo, chiave primaria)
Relazioni:
TipiProdotti.TipoProdotto uno-a-molti con Prodotti.TipoProdotto
Marche.marca uno-a-molti con Prodotti.Marca
Forme.Forma uno-a-molti Prodotti.Forma