Sto progettando un database e sto ripensando alle mie decisioni iniziali di progettazione ...
I tipi di prodotto sono i seguenti ... Modelli, parti, kit di parti di ricambio e opzioni.
Opzione A (primo progetto): avevo in programma di avere tabelle separate per i tipi di prodotto sopra elencati. Direi che circa il 75% dei campi sarebbe lo stesso in ogni tabella.
Ho creato ogni tipo di prodotto come tabelle separate a causa delle associazioni che devo creare tra di loro. Ad esempio, un modello può avere molte opzioni e un'opzione può avere molti modelli. Un'opzione può anche avere molte parti e una parte può avere molte opzioni ... e così via ...
Opzione B: Invece di disporre di tabelle separate, è possibile creare una tabella denominata Prodotto che comprende modelli, parti, kit di parti di ricambio e opzioni. Potrei avere un campo chiamato type per distinguere tra modello, opzioni, ecc. Suppongo che un lato negativo sia che diversi campi non sarebbero mai stati usati (lasciati nulli) per alcuni tipi di prodotto. Immagino che qui entrerebbero in gioco "non le migliori pratiche".
L'opzione B ridurrebbe notevolmente la complessità del progetto db. Inoltre non dovrei preoccuparmi di fare riferimento a un mucchio di tabelle quando si estraggono i dati per le query ...