2009-08-26 17 views
7

Sono interessato a giocare con il modello EAV su un database SQL Server. Qualcuno è in grado di indicarmi un articolo o un framework per un modello/schema esistente (non sono interessato a Saas per questo)?EAV su SQL Server

+2

Non chiaro; vuoi un articolo che spieghi perché questa è una cattiva idea da fare in SQL o uno schema di esempio su cui giocare? –

+0

Hmm, forse ho sbagliato a dirlo, ma pensavo di aver detto chiaramente "articolo o quadro per un modello/schema esistente", non uno schema per giocare con –

+0

@Jaimal - "Sono interessante nel * giocare con * con il modello EAV "???? –

risposta

15

Best Practices for Semantic Data Modeling for Perfor...

EAV è notoriusly problematico in quanto porta a gravi problemi di prestazioni di implementazione e scalabilità. Il white paper nel collegamento, rilasciato dal team di assistenza clienti di SQL Server, tenta di offrire alcune indicazioni per implementare un modello EAV di successo.

2

Perché non creare una tabella molto semplice, con una colonna entità, una colonna attributo e una colonna di valore:

CREATE TABLE eav(
    entity STRING, 
    attribute STRING, 
    value STRING); 

E poi popolare la tabella utilizzando uno script di qualche tipo per generare alcuni dati di test.

INSERT INTO eav ('banana','color','yellow'); 
INSERT INTO eav ('banana','fluffy','no'); 
INSERT INTO eav ('banana','origin','Guatemala'); 
INSERT INTO eav ('orange','origin','USA'); 
INSERT INTO eav ('orange','origin','Mexico'); 
INSERT INTO eav ('pear','origin','USA'); 
INSERT INTO eav ('peach','fluffy','yes'); 

E poi provare a eseguire query su di esso, per giocare, imparare come funziona, ecc

In generale, comunque, lo schema di organizzazione dei dati di cui sopra non realmente maglia bene con la teoria dei database relazionali. Quanto sopra si configura di più con la teoria del database dei documenti, come Couch DB. Vorrei approfondire l'argomento se è necessario archiviare/gestire i dati della natura EAV in natura.

+0

Se si ha accesso a un sistema Siebel, il sistema LOV funziona nello stesso modo. –

+0

Fare ciò sarebbe facile, ma dopo circa 2 secondi mi farei un sacco di domande, quindi perché stavo davvero cercando un articolo o un framework esistente che avrebbe già risposto a quelle domande. –

+0

@ Jaimal - Che tipo di domande? La tua domanda afferma che vuoi giocare uno schema di esempio. –

5

non l'ho usato, ma c'è una struttura EAV esempio con i dati in questo progetto CodePlex:

http://eav.codeplex.com/
"Un modello di esempio EAV per SQL Server con: tabelle e gli indici, l'integrità referenziale parziale, parziale digitazione dati, visualizzazioni aggiornabili (come la normale tabella SQL) "

Fornisce alcuni script SQL da scaricare, here.

Inoltre, questo post del blog: "guida di Dave al EAV"
http://weblogs.sqlteam.com/davidm/articles/12117.aspx

... funziona con un esempio EAV in SQL Server con esempi di come sarebbero state attuate tipo di controllo e l'esecuzione di query, con un sacco di discussione sulla teoria e sul perché l'EAV può causare problemi.

-1

Abbiamo una soluzione EAV molto avanzata e matura là fuori su Github - https://github.com/2sic/eav. È abbastanza difficile da installare, dato che è principalmente utilizzato come back-end di un sistema di gestione dei contenuti chiamato 2sxc (anche su github).

Poiché è estremamente avanzato, supporta molti tipi di dati, tipi di input, maschere generiche di input e molto altro credo che lo troviate molto stimolante. Per provarlo, il modo migliore è installare DNN (una piattaforma web .net) e 2sxc (il sistema di gestione dei contenuti per DNN). Penso che sarai sbalordito da ciò che è possibile.

Si noti che l'intera interfaccia utente è basata su AngularjS, quindi è una configurazione molto moderna. Puoi anche trovare altri blog/video su http://2sxc.org.

Problemi correlati