Sto provando a creare un database che contiene un elenco di apparecchiature. Tutte le apparecchiature avranno determinati attributi comuni (come produttore, numero di modello, numero di serie, ecc.), Quindi ci sono altri attributi specifici per un determinato componente (ad esempio, un modem avrà un accesso #, mentre un pannello solare avrà una capacità di uscita). Non sono sicuro di come rappresentare questi attributi mutevoli con buoni principi di progettazione del database, ho provato a cercare sul web, ma non sono del tutto sicuro di cosa cercare.Buona progettazione del database, numero variabile di attributi
mi è venuta in mente le seguenti soluzioni possibili ei miei pensieri iniziali su di loro:
Avere un grande tavolo con tutti gli attributi possibili e appena messo nulla in cui non è applicabile. Ovviamente questo ha alcuni difetti.
Avere una tabella separata per ciascun tipo di apparecchiatura. Sembra che potrebbe essere un incubo da usare, se voglio stampare un elenco di tutte le attrezzature, come faccio a sapere quali tabelle cercare?
Avere una tabella con gli attributi comuni e altre tabelle per ogni tipo di apparecchiatura a cui si accede con una chiave esterna per memorizzare gli attributi aggiuntivi. Probabilmente potrei farlo funzionare, ma sarebbe ingombrante e non mi sembra una buona soluzione.
Un modello di tipo valore attributo di entità. Semplicemente non mi sembra una buona idea per quello che voglio fare.
Non ho molta esperienza con i database così sto imparando come vado qui, tutti i link relativi a questo problema o "deve leggere" articoli sul progettazione di database sarebbe apprezzato. Grazie!
MODIFICA: Prima di tutto, ho scoperto che avevo bisogno di Google "Mapping ereditarietà", che potrebbe aiutare chiunque abbia una domanda simile. Per risolvere il problema ho finito per utilizzare un ibrido di # 2 e # 3. In realtà è piuttosto semplice, funziona bene e risolve il problema dell'aggiunta di ulteriori tipi di apparecchiature senza la complessità dell'EAV. Grazie per tutti i commenti e suggerimenti!
chek le risposte nel seguente post: http://stackoverflow.com/questions/870808/entity-attribute-value-database-vs-strict-relational-model-ecommerce-question –
Questo post contraddice alcuni altri articoli I leggi dicendo che l'EAV dovrebbe essere evitato, pensa a qualcuno? – neurotik