Questa non è una risposta esauriente, ma solo alcuni punti sull'argomento.
Dal momento che la domanda è anche etichettato con il tag [sql]
, lasciatemi dire che, in generale, relational databases non sono particolarmente adatti per la memorizzazione dei dati utilizzando il modello EAV. È ancora possibile progettare un modello EAV in SQL, ma si dovranno sacrificare molti vantaggi che un database relazionale darebbe. Non solo non sarai in grado di applicare l'integrità referenziale, utilizzare i tipi di dati SQL per i valori e imporre attributi obbligatori, ma anche le query di base possono diventare difficili da scrivere. In effetti, per superare questa limitazione, diverse soluzioni EAV si basano sulla duplicazione dei dati, invece di unirsi alle tabelle correlate, che, come potete immaginare, presentano numerosi inconvenienti.
Se si richiede veramente un disegno schematico, "consentendo un numero illimitato di attributi", la soluzione migliore è probabilmente quella di utilizzare una soluzione NoSQL. Anche se i punti deboli di EAV relativi ai database relazionali si applicano anche alle alternative NoSQL, ti verranno offerte funzionalità aggiuntive che sono difficili da ottenere con i tradizionali database SQL. Ad esempio, solitamente i datastore NoSQL possono essere ridimensionati molto più facilmente dei database relazionali, semplicemente perché sono stati progettati per risolvere un qualche tipo di problema di scalabilità e hanno intenzionalmente eliminato funzionalità che rendono difficile il ridimensionamento.
Molte piattaforme di cloud computing (come quelli offerti da Amazon, Google e Microsoft) stanno caratterizzando archivi dati basati sul modello EAV, dove un numero arbitrario di attributi può essere associato con una data entità. Se stai pensando di implementare la tua applicazione sul cloud, puoi considerare questo sia come vantaggio commerciale, sia tecnico, perché la forte competizione tra i grandi venditori sta spingendo i rapporti value-to-cost a livelli molto alti, aumentando continuamente le caratteristiche e abbassando i costi finanziari e di implementazione.
fonte
2010-02-08 19:30:26
Vedi http://stackoverflow.com/search?q=%5bdatabase%5d%20%2beav&tab=newest –