Frage : Datenbankentwurf-Frage - SQL-Server

Hallo, jeder:

Here ist das Problem:
- Daten von der Web site, von einer Liste des Tropfens unten für eine Suche werden Oberseite das database
- die Daten geführt, die im DB übermittelt werden und gespart sind - „Verkaufs-Art“ wird in eine Tabelle gespart, die MVO genannt wird, während ein Schnur (die mehrfach bewertete Schnur, Komma abgegrenzt)

- „Verkaufs-Art“ eine von sieben Arten sein kann, „Auktion“, „gerichtliche Verfallserklärung“, „REO“, etc.

*, das ich diese Spalte nehmen muss und außer ihm in ein normalisiertes data-structure.

The PKey der MVO Tabelle (oben) ist mlsnum

I nahm zwei Entwurfsalternativen:
First Design
1. stellte eine Nachschlagentabelle mit den verschiedenen „Verkäufen schreibt“, PKey SaleTypeID
2. herstellte eine „Verzweigung-Tabelle“, mit zusammengesetzten Schlüsseln, mlsNum, SaleTypeID mit Verhältnis 1-Many zum Nachschlagentabelle und zum MVO table.

Second Entwurf her:
- stellte eine einzelne Tabelle, MVO_SaleType mit PKey mlsnum und sieben anderen Spalten her;
IsAuction, IsForeclosure, IsREO, etc., die diese alles Spitze columns

Well, die erste Entwurfsannäherung sind, scheint, in 3. N-Düngung zu sein und alles als es ist sehr schwierig, die korrekte, optimierte Frage using diesen Entwurf - I zu schreiben besonders „nicht gelassen“ neue Funktionen von SQL 2005/2008 benutzen (wegen der Rückstellung von den Entwicklern…)

I schätzt Ihre Anmerkung und/oder hat Rat, criticism.

I ein Dokument die Erscheinen der Entwurf und das details.

Thank Sie im Voraus.

Dan
beigefügt
Attachments:

Antwort : Datenbankentwurf-Frage - SQL-Server

Mit Ihrem ersten Entwurf konnten Sie eine Verbindung zwischen mls_unified_mvo_svo_tbl und einem Subquery tun diese Gruppen auf mls_unified_mvo_sale_type.  Z.B.

a.mlsnum, b.SaleTypeName, b.NameCount vorwählen von
  mls_unified_mvo_svo_tbl, das ein inneres verbinden
  (auserwähltes MlsNum, SaleTypeName, gelten (SaleTypeName) als NameCount
    vom inneren mls_unified_mvo_svo_sale_type sale_type sich anschließen
    Gruppe durch MlsNum, SaleTypeName) b auf a.MlsNum = b.MlsNum
wo b.SaleTypeName innen („Auktion“, „gerichtliche Verfallserklärung ") und b.NameCount > 0;

Dieses verbinden produziert no more als eine Aufzeichnung für jeden getrennten Sales_Type Wert, also können Sie die einfach vorwählen, die Sie wünschen und ignorieren den Rest.

JEDOCH bin ich sicher, dass der zweite Entwurf viel besseres durchführt.  Dieses ist vermutlich eine jener Zeiten, in denen Sie Normalisierung für Leistung handeln.
Weitere Lösungen  
 
programming4us programming4us