Sto sviluppando uno strumento che gestisce parti (elettriche). Le parti possono essere create, visualizzate, modificate, cancellate, raggruppate e così via ...
Per rendere questa domanda utile per i futuri visitatori mi piace mantenere questa domanda universale poiché la gestione delle parti in un DB è molto comune, indipendentemente da quali parti siano presenti nel DB (CD, automobili, cibo, studenti, ...) .
Sto pensando a 3 diversi progetti di DB:
-
Utilizzo di una tabella delle parti e tabelle derivate per attributi di parti specializzati.
Parts (id, part_type_id, name) PartTypes (id, name) Wires (id, part_id, lenght, diameter, material) Contacts (id, part_id, description, picture)
-
Utilizzando solo tabelle di parti specializzate.
Wires (id, name, lenght, diameter, material) Contacts (id, name, description, picture)
-
Utilizzo di una tabella Parts-, PartTypes-, ValueTypes- e PartValues che contengono tutti i valori.
PartTypes (id, name) ValueTypes (id, part_type_id, name) Parts (id, part_type_id, name) PartValues (part_id, value_type_id, value)
Quale preferire e perché? O c'è uno migliore?
Sono preoccupato per le query DB. Non voglio che le query diventino eccessivamente lente o complicate.
Aggiornamento
Il numero di tipi nel DB è praticamente dato e statico poiché si basa su uno standard internazionale e verrà potenziato di rado.