2009-08-26 18 views
7

Jestem zainteresowany odtwarzaniem z modelu EAV przez bazę danych SQL Server. Czy ktokolwiek może wskazać mi artykuł lub strukturę istniejącego modelu/schematu (nie jestem za to zainteresowany Saas)?EAV ponad SQL Server

+2

Niejasne; chcesz wydrukować dokument wyjaśniający, dlaczego jest to zły pomysł w SQL lub przykładowy schemat do zabawy? –

+0

Hmm, może zrobiłem to źle, ale pomyślałem, że powiedziałem "artykuł lub ramy dla istniejącego modelu/schematu", a nie schemat, który można odtworzyć z pomocą –

+0

@Jaimal - "Interesuję się * graniem * z model EAV "???? –

Odpowiedz

15

Best Practices for Semantic Data Modeling for Perfor...

EAV jest notoriusly problematyczne, ponieważ prowadzi do poważnych wydajności i skalowalności rozmieszczania problemów. Dokument informacyjny w linku wydany przez zespół doradztwa klienta SQL Server stara się zaoferować pewne wskazówki dotyczące wdrożenia udanego modelu EAV.

2

Dlaczego nie stworzyć bardzo prostą tabelę z kolumną jednostki, kolumny atrybutów i wartości kolumny:

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

A następnie wypełnić tabelę przy użyciu skryptu jakiegoś wygenerować pewne dane testowe.

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'); 

A potem spróbuj uruchomić zapytań na to, aby bawić się, uczyć się, jak to działa, itp

Na ogół jednak, powyższy schemat organizacji danych nie naprawdę dobrze oczek z relacyjnej bazy danych teorii. Powyższe siatki są bardziej zgodne z teorią bazy danych dokumentów, np. Couch DB. Chciałbym zajrzeć do tego, jeśli chcesz przechowywać/zarządzać danymi natury EAV na wolności.

+0

Jeśli masz dostęp do systemu Siebel, system LOV działa dokładnie w ten sam sposób. –

+0

To byłoby łatwe, ale po około 2 sekundach zadałbym kilka pytań, dlatego naprawdę szukałem istniejącego artykułu lub ramy, które już odpowiedziałem na te pytania. –

+0

@ Jaimal - Jakie pytania? Twoje pytanie mówi, że chcesz mieć przykładowy schemat do zabawy. –

5

Nie używałem go, ale jest przykładem struktury EAV z danymi w tym codeplex projektu:

http://eav.codeplex.com/
„Wzór próbki EAV dla SQL Server z: Stoły i indeksów, częściowe więzy integralności, Partial typowanie danych, Widoki, które można aktualizować (jak normalna tabela SQL) "

Udostępnia niektóre skrypty SQL do pobrania, here.

Również ten blogu: „Podręcznik Dave'a do EAV”
http://weblogs.sqlteam.com/davidm/articles/12117.aspx

... działa na przykładzie EAV w SQL Server z przykładów jak typ sprawdzania i wysyłania żądania byłyby realizowane, z dużą dyskusji o teorii i dlaczego EAV może powodować problemy.

-1

Mamy bardzo zaawansowane, dojrzałe rozwiązanie EAV na Github - https://github.com/2sic/eav. Instalacja jest dość trudna, ponieważ jest używana głównie jako backend systemu zarządzania treścią o nazwie 2sxc (również na github).

Jest niezwykle zaawansowany, obsługuje wiele typów danych, typy wejściowe, ogólne maski wejściowe i więcej. Uważam, że jest to bardzo inspirujące. Aby go wypróbować, najlepszym sposobem jest zainstalowanie DNN (platforma internetowa .net) i 2sxc (system zarządzania treścią dla DNN). Myślę, że będziesz zaskoczony tym, co jest możliwe.

Należy pamiętać, że cały interfejs użytkownika oparty jest na AngularjS, więc jest to bardzo nowoczesny układ. Możesz także znaleźć więcej blogów/filmów na http://2sxc.org.