Frage

Ich bin neu Erstellen eine Teil-Datenbank von meiner Firma, weil es nicht zukünftige Anforderungen nicht erfüllt. Derzeit haben wir in erster Linie eine flache Datei und einige disjoined Tabellen, die nie vollständig verwirklicht wurden.

Denken Mein Weg ist, dass wir eine Tabelle für jede Kategorie außer vielleicht die Reißverschlüsse Tabelle haben, die als schließen Sie es alle zusammen Tisch dienen kann. Bitte beachten Sie Bild unten:

Database Diagram http://www.freeimagehosting.net/uploads/248cc7e884.jpg

Eine Sache, die ich denke wird die Zip-Tabelle zu entfernen und nur in der zipstocities Tabelle die Postleitzahl setzen, da die Postleitzahl ist fast einzigartig und dann die Indizierung der Tabelle auf der Postleitzahl. Der einzige Nachteil ist, Postleitzahl ein varchar kümmern Postleitzahlen mit führenden Nullen sein muss. Ich will nur wissen, ob es ein Fehler in meiner Logik ist.

War es hilfreich?

Lösung

Ich weiß nicht, den US-PLZ und territoriales devision System gut, aber ich nehme an, es ist ein wenig wie die deutsche.

  • Ein Staat hat viele Landkreise.
  • Ein Kreis hat viele Städte.
  • Eine Stadt hat viele Postleitzahlen.

Daher würde ich das folgende Schema verwenden.

ZipCodes          CityZipCodes
------------      ----------------      Cities
ZipCode (PK) <─── ZipCode (PK)(FK)      -----------
                  City    (PK)(FK) ───> CityId (PK)
                                        Name
                                        County (FK) ───┐
                                                       │
                                                       │
                                     Counties          │
                                     -------------     │
              States                 CountyId (PK) <───┘
              -----------------      Name               
              StateId      (PK) <─── State    (FK)
              Name
              Abbreviation

Feste für mehrere Städte pro Postleitzahl.

Andere Tipps

Eine Sache, die Sie beachten sollten, ist, dass nicht alle Städte in Landkreise sind. In Virginia sind Sie entweder in einer Stadt oder Landkreis, aber nie beides.

auf dem Diagramm Suchen Sie haben, ist die Zustandstabelle der einzige der vier Tischen, die wirklich notwendig ist. Lookup-Tabellen mit nur einer ID und einem einzigen Wert sind nicht die Mühe wert. Diese Beziehungen sind so konzipiert, um einen einzelnen Wert in der Haupttabelle (ziptocities) zu machen, beziehen sich auf eine Reihe von verwandten Daten in der Look-up-Tabelle (Staaten).

Sie müssen sich fragen, warum Sie über Landkreise kümmern. In vielen Staaten in den USA, haben sie wenig Bedeutung über Tradition und Karten.

Die andere Frage wird sein, wie wichtig wird es sein, dass die Adresse korrekt sein? Wie viele Todesfälle wird es sein, wenn wichtige Briefe in nicht rechtzeitig geliefert werden (möglicherweise viele, wenn der Brief über verschreibungspflichtige Arzneimittel erinnern!)

Sie wollen wahrscheinlich über die Verwendung von Daten aus der Post denken, möglicherweise ein Produkt, das Adresse korrigiert. Auf diese Weise, wenn Sie eine gute Adresse zu bekommen, werden Sie sicher sein, die E-Mail dort geliefert werden kann - weil die Post so gesagt hat, wird

Es scheint Mängel sowohl in Ihren Prozess und Ihre Logik.

Ich schlage vor, dass Sie über Tabellen und Beziehungen für einen Moment aufhören zu denken. Stattdessen denkt über Fakten. Machen Sie eine Liste der gültigen Adressen, die Datenbank unterstützen muss. Viele Überraschungen warten auf Sie.

Sie eine Adresse mit einem Versandetikett nicht verwirren. Sie sind gar nicht das Gleiche. Betrachten Träger Modellierung auch. In den USA, ob eine Adresse gültig ist, hängt von dem Träger. Zum Beispiel ist mein Postfach eine gültige Adresse, wenn der Träger die USPS ist, aber nicht, wenn der Träger UPS ist.

Um Zeit zu sparen, können Sie versuchen, einige internationale Adressformate auf bitboost .

Wird Ihre Logik funktionieren, wenn zwei Länder passieren die gleiche Postleitzahl haben? Diese beiden würden zeigen in verschiedene Städte in diesem Fall. Hier sind einige Punkte zu beachten

  1. Haben Sie zipcode als eine Art verwenden möchten der Primärschlüssel in die Adresse? (beim leasen die Stadt, Staat und Land Felder). In diesem Fall können Sie Postleitzahl, Ort, Staat, Land in einer Tabelle. Erstellen von Indizes zu Stadt, Staat etc .. (Sie haben eine funktionelle Abhängigkeit der Form zipcode-> Land, Bundesland, Stadt. Diese wie ich sagte, kann über nicht wahr sein Länder.
  2. Wenn die automatische Bestückung ist Ihre einzige Sorge, erstellen materialisierte Ansicht und verwenden.

Ich würde empfehlen, 'Data Model Muster' von David C. Hay zu lesen.

Aber nicht jede Person, die ein gültiges ärztliches Anspruch ist gesetzlich verpflichtet, in den USA zu bleiben, bis der Anspruch erfüllt wird. Menschen bewegen sich.

San Francisco ist eine Stadt in Kalifornien; es ist nicht eine Stadt in Alabama. Hat Ihr Design Unsinn Einträge verhindern wie "San Francisco, AL"?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top