Frage

Was ist der "am besten„Möglichkeit, internationale Adressen in einer Datenbank zu speichern?Antworten Sie in Form eines Schemas und einer Erläuterung der Gründe, warum Sie sich für die Normalisierung entschieden haben (oder nicht).Erklären Sie auch, warum Sie den Typ und die Länge jedes Feldes ausgewählt haben.

Notiz:Sie entscheiden, welche Bereiche Sie für notwendig halten.

War es hilfreich?

Lösung

Einfacher Freiformtext.

Die Validierung aller Post-/Postleitzahlen der Welt ist zu schwierig;eine feste Länderliste sei politisch zu heikel;Eine obligatorische Unterteilung nach Bundesstaat/Region/anderer Verwaltungsebene ist einfach unangemessen (allzu oft werde ich gefragt, in welchem ​​Landkreis ich lebe – wenn ich das nicht tue, weil der Großraum London überhaupt kein Landkreis ist).

Genauer gesagt ist es einfach unnötig.Es ist höchst unwahrscheinlich, dass Ihre Anwendung ernsthaft Adressen modelliert.Wenn Sie eine Postanschrift wünschen, fragen Sie nach der Postanschrift.Die meisten Menschen sind nicht so dumm, etwas anderes als eine Postanschrift einzugeben, und wenn doch, können sie sich von ihrem neu gekauften Artikel verabschieden.

Die Ausnahme hiervon ist, wenn Sie etwas tun, das von Natur aus ohnehin auf ein Land beschränkt ist.In dieser Situation sollten Sie beispielsweise nach dem Paar {Postleitzahl, Hausnummer} fragen, das ausreicht, um eine Postanschrift zu identifizieren.Ich kann mir vorstellen, dass man mit der erweiterten Postleitzahl in den USA ähnliche Dinge erreichen könnte.

Andere Tipps

In der Vergangenheit habe ich Formulare, die international sein mussten, nach den UPS/Fedex-Versandadressenformularen auf ihren Websites modelliert (ich dachte mir, wenn sie nicht wissen, wie man mit einer internationalen Bestellung umgeht, sind wir alle fertig).Die von ihnen verwendeten Felder können als Referenz für die Einrichtung Ihres Schemas verwendet werden.

Im Allgemeinen müssen Sie verstehen, warum Sie eine Adresse wünschen.Ist es für den Versand/Postversand gedacht?Dann gibt es eigentlich nur eine Voraussetzung: die Trennung des Landes.Die anderen Zeilen sind Freiformzeilen und müssen vom Benutzer ausgefüllt werden.Der Grund dafür ist die gängige Weiterleitungsstrategie für E-Mails:Eingehende Post für das Ausland wird weitergeleitet, ohne auf die anderen Adresszeilen zu achten.Daher werden die detaillierten Informationen nur vom Postsortierer im Land selbst analysiert.Ebenso wie der Empfänger sind sie mit den nationalen Gepflogenheiten vertraut.

(UPS bündelt möglicherweise einige kleine europäische Länder, z. B.Alle Niederlande werden wahrscheinlich von Belgien aus bedient – ​​die Idee gilt immer noch.)

Ich denke, das Hinzufügen von Land/Stadt und Adresstext wird in Ordnung sein.Land und Stadt sollten für die Berichterstattung getrennt sein.Manager stets Fragen Sie nach solchen Berichten, die Sie nicht erwarten, und ich bevorzuge es nicht, eine LIKE-Abfrage durch eine große Datenbank laufen zu lassen.

Um Facebook keinen unangemessenen Respekt zu erweisen.Allerdings scheint die Gesamtstruktur der Datenbank in vielen Webanwendungen, die täglich gestartet werden, übersehen zu werden.Offensichtlich glaube ich nicht, dass es eine perfekte Lösung gibt, die ohne viel Aufwand alle potenziellen Variablen mit der Adressstruktur abdeckt.In Kombination mit der automatischen Vervollständigung gelingt es Facebook jedoch, Standorteingabedaten zu übernehmen und einen Großteil ihrer redundanten Einträge zu eliminieren.Sie tun dies, indem sie ihre Datenbank gut genug organisieren, um dem Kunden auf kostengünstige und fehlerarme Weise Autovervollständigungsinformationen in Echtzeit bereitzustellen, sodass dieser mehr oder weniger den richtigen Standort aus einer vorhandenen Liste auswählen kann.

Ich denke, die beste Lösung besteht darin, auf eine Datenbank eines Drittanbieters zuzugreifen, die den gewünschten geografischen Bereich enthält, und diese zu verwenden, um zunächst die Standortinformationen Ihres Benutzers zu ermitteln.Auf diese Weise können Sie sich die Vorarbeit zur Erstellung eines eigenen Dokuments ersparen.Mit etwas Glück können Sie die Belastung Ihres Servers reduzieren, indem Sie Ihren neuen Benutzern ermöglichen, die korrekten Autovervollständigungsinformationen direkt von Ihrem Drittanbieter zu erhalten.Schließlich können Sie die meisten automatischen Vervollständigungen für Standortinformationen wie Stadt, Land usw. ausfüllen.aus Informationen, die in Ihrer eigenen Datenbank enthalten sind, aus Benutzereingabedaten.

Sie müssen etwas detailliertere Angaben dazu machen, wie Sie die Daten nutzen möchten.Beispielsweise können Felder wie „Stadt“, „Bundesland“ und „Land“ entweder Text in der einzelnen Tabelle oder Codes sein, die mit einem Fremdschlüssel mit einer separaten Tabelle verknüpft sind.

Am einfachsten wäre

Adress_line_01 (erforderlich, nicht leer) adres_line_02 adress_line_03 Landmark City (Erforderlich) PIN (erforderlich) Province_District State (erforderlich) Land (erforderlich)

Alle oben genannten Elemente können Text/Unicode mit entsprechenden Feldlängen sein.

Telefonnummern wie zutreffend.

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