2012-11-04 15 views
7

Ho cercato nel database di Adventure Works 2012 di Microsoft. Sarei molto interessato se ci sono delle informazioni che spiegano perché i tavoli sono stati creati così come sono. Una sorta di panoramica dello schema credo.Adventure Works Spiegazione

Ad esempio:

perché hanno scelto di creare una tabella BusinessEntity come una sorta di classe base per una persona, dipendente, ecc

maggior parte dei dati è normalizzato in modo perché hanno scelto di mettere la CountryRegionCode campo nella tabella StateProvince anziché un ID in una tabella separata.

In ogni caso sono molto interessato a saperne di più sulle decisioni prese nel design del database. Qualcuno conosce una risorsa che va in questo genere di cose?

risposta

7

Non sono a conoscenza di alcuna documentazione di progettazione ufficiale per AdventureWorks, ma io uso di essere un trainer e ho utilizzato database AdventureWorks ampiamente per demo e laboratori, quindi sono abbastanza familiare con esso.

La tabella BusinessEntity è un caso classico di un design SuperType/SubType, che riduce la ridondanza dei dati, perché i clienti potrebbero anche diventare venditori, dipendenti potrebbero diventare clienti e ogni altra combinazione. Inoltre, significa che non stai memorizzando i dettagli relativi a tutte le entità ripetutamente, in tabelle separate, riducendo al minimo lo sforzo in caso di modifiche al codice.

La CountryRegionCode io non sono positivo circa, ma ho il sospetto uno dei tre motivi:

  1. Non ci sono abbastanza combinazioni distinte per giustificare una tabella aggiuntiva a spese del segnalazione prestazioni (Questo potrebbe essere convalidato con alcune semplici istruzioni COUNT (*) GROUP BY)
  2. Lo volevano nella stessa tabella in modo che in futuro avessero la flessibilità di modellare una struttura gerarchica con hierarchyID (questa è l'opzione meno probabile)
  3. Era una normalizzazione errore! (Il mio denaro è su questa opzione!)
+0

Grazie per voi approfondimenti. – user1705507

3

Questa immagine mi ha aiutato, anche se è tecnicamente per 2008.

+0

Stavo cercando i diagrammi e ho trovato questo sul sito ufficiale (non sono sicuro se è la stessa versione pensata): http://www.microsoft.com/en-us/download/details.aspx?id=10331 –