Tabelle statiche vs Attributi di entità dinamiche Configurazioni di archiviazione

1

Sto cercando di capire un modo migliore per decidere le configurazioni di archiviazione della tabella se utilizzerà configurazioni statiche usando le tabelle o configurazioni dinamiche usando EAV (valore-attributo entità )

Quando si creano tabelle, moduli e report di database, quando si decide che un programma deve utilizzare un normale database (in cui tutto è configurato staticamente, possibilmente finale) o utilizzare valori di attributo di entità (in cui tutti i dati sono dinamici e può essere personalizzato)?

Tutto dipende dal cliente / le persone che lo usano? I programmi static-table-custom sono applicabili solo per le piccole e medie imprese? e dynamic-eav-customizable-field-programs (come Quickbooks) solo per il pubblico in generale o per le grandi aziende in cui non vogliono che un altro programmatore interferisca nuovamente con il loro software?

    
posta Franz Noel 28.12.2012 - 09:01
fonte

1 risposta

1

Utilizza EAV quando il numero di possibili attributi è elevato, ma il numero di valori effettivi è relativamente piccolo e non può essere previsto con certezza.

Un esempio di questo è la cattura dei sintomi per le cartelle cliniche. Possono esserci letteralmente centinaia se non migliaia di possibili sintomi, ma il numero effettivo di sintomi che ogni paziente potrebbe avere è piccolo rispetto al pool totale di sintomi.

In questo scenario, non è pratico avere una colonna nel database per ogni possibile sintomo; molti database non sono nemmeno in grado di memorizzare tante colonne. Né puoi prevedere con certezza quanti sintomi possa avere un dato paziente, quindi non puoi semplicemente aggiungere un numero arbitrario di colonne al database per i sintomi effettivi .

Se fai una di queste cose, scoprirai che la maggior parte del tuo database è vuota, perché avrai una vasta gamma di campi che non vengono utilizzati. È una matrice sparsa, fondamentalmente. Questo è il motivo per cui i fogli di calcolo non vengono effettivamente memorizzati come matrice ma come matrice sparsa, perché altrimenti ci sono così tante celle vuote.

La difficoltà con EAV è di appiattire la matrice sparsa in un formato convenzionale per il reporting e altri scopi, motivo per cui tali rapporti sono tipicamente eseguiti verticalmente , piuttosto che orizzontalmente. Una fattura è un esempio di tale rapporto: i nomi dei prodotti non vengono mai elencati come colonne, ma piuttosto come righe nei dettagli dell'elemento pubblicitario.

Ecco perché l'inventario delle vendite può anche essere considerato una forma di EAV (il tuo cliente non comprerà tutti i tuoi prodotti, ma solo alcuni).

    
risposta data 28.12.2012 - 18:03
fonte

Leggi altre domande sui tag