Frage

Ich erwarte, dass die Spalte in meiner Oracle -Datenbank ein VARCHAR2 ist.

US -Reißverschlüsse sind 9.

Kanadier ist 7.

Ich denke, 32 Zeichen wären eine vernünftige Obergrenze

Was vermisse ich?

Edit] bis: 12 ist eine vernünftige Antwort auf die Frage dank aller, die beigetragen haben.

War es hilfreich?

Lösung

Durchfliegen Wikipedia's Postcodes Seite, 32 Zeichen sollten mehr als genug sein. Ich würde sagen, sogar 16 Charaktere sind gut.

Andere Tipps

Wie bereits von @Neil-McGuigan aufgewachsen, hat Wikipedia eine anständige Seite zu diesem Thema. Basierend darauf sollten 12 Zeichen dies tun: http://en.wikipedia.org/wiki/List_of_postal_codes

Der Artikel von Wikipedia listet ~ 254 Länder auf, was in Bezug auf UPU (Universal Postal Union) hat 192 Mitgliedsländer.

Warum sollten Sie eine Feldgröße deklarieren, die größer ist als die tatsächlichen Daten, die Sie erwarten, um sie zu speichern?

Wenn die anfängliche Version Ihrer Anwendung uns und kanadische Adressen unterstützt (was ich aus der Tatsache schließe, dass Sie diese Größen in Ihrer Frage aufrufen), würde ich das Feld als VARCHAR2 (9) (oder VARCHAR2 (VARCHAR2 (VARCHAR2) deklarieren ((Varchar2). 10) Wenn Sie beabsichtigen, den Bindestrich in ZIP+4 -Feldern zu speichern). Selbst wenn Sie sich die Beiträge ansehen, die andere in den Postcodes in den Ländern gemacht haben, würden VARCHAR2 (9) oder VARCHAR2 (10) für die meisten, wenn nicht alle anderen Länder ausreichen.

Auf der ganzen Linie können Sie die Säule immer ändern, um die Länge zu erhöhen, falls der Bedarf erfolgt. Aber es ist im Allgemeinen schwierig, jemanden zu verhindern, irgendwo zu entscheiden, "kreativ" zu werden und 50 Zeichen aus dem einen oder anderen Grund in ein VARCHAR2 -Feld (50) zu bringen (dh weil sie eine andere Linie auf einem Versandetikett haben möchten). Sie müssen sich auch mit dem Testen der Grenzfälle befassen (wird jede Anwendung, die ein ZIP -ZIP -Griff von 50 Zeichen anzeigt?). Und mit der Tatsache, dass Clients, wenn sie Daten aus der Datenbank abrufen, im Allgemeinen Speicher anhand der maximalen Größe der Daten, die abgerufen werden, und nicht auf der tatsächlichen Länge einer bestimmten Zeile zuweisen. Wahrscheinlich kein großes Geschäft in diesem speziellen Fall, aber 40 Bytes pro Reihe könnten für einige Situationen ein anständiger Teil des RAM sein.

Abgesehen davon können Sie auch in Betracht ziehen, die Postleitzahl und die +4 -Erweiterung separat zu speichern (zumindest für US -Adressen). Es ist im Allgemeinen nützlich, Berichte nach geografischer Region erstellen zu können, und Sie möchten möglicherweise häufig alles in eine Postleitzahl zusammenlegen, anstatt sie durch die +4 -Erweiterung zu brechen. Zu diesem Zeitpunkt ist es nützlich, nicht zu versuchen, die ersten 5 Zeichen für die Postleitzahl zu substrieren.

Was Ihnen fehlt, ist ein Grund, warum Sie die Postleitzahl speziell behandeln müssen.

Wenn Sie nicht wirklich müssen ARBEIT Mit einer Postleitzahl würde ich empfehlen, mich nicht darüber Sorgen zu machen. Mit Arbeit meine ich eine besondere Verarbeitung für nicht nur, um Adressetiketten zu drucken und so weiter.

Erstellen Sie einfach drei oder vier Adressfelder von VARCHAR2 (50) [zum Beispiel] und lassen Sie den Benutzer alles eingeben, was sie wollen.

Tust du wirklich brauchen Um Ihre Bestellungen oder Transaktionen nach Postleitzahl zu gruppieren? Ich denke nicht, da verschiedene Länder für dieses Gebiet sehr unterschiedliche Systeme haben.

Normalisierung? Postcodes können mehr als einmal verwendet werden und können sich auf Straßennamen oder Stadtnamen beziehen. Getrennte Tabellen (en).

Die kanadischen Postcodes sind nur 6 Zeichen in Form von Buchstaben und Zahlen (lnlnln)

Großbritannien haben Standards veröffentlicht: UK Regierungsdatenstandards Katalog

Max 35 characters per line 

Internationale Postanschrift:

Minimum of 2 lines and maximum of 5 lines for the postal delivery point 
details, plus 1 line for country and 1 line for postcode/zip code 

Die britische Postleitzahl lautet:

Minimum 6 and Maximum 8 characters 

Wenn Sie Postcodes in die Datenbank integrieren möchten, kann die Geonames -Datenbank am besten verwendet werden. Auch wenn es schwierig ist, zu verwenden und zu verstehen, ist es die größte geografische Datenbank, die für Benutzer wie uns frei verfügbar ist.

Alle anderen solchen Datenbank sind mehr oder weniger wahrscheinlich die gleichen Daten und Struktur. Sie entfernen nur einige zusätzliche/redundante Informationen aus der Datenbank. Wenn Sie dies nur für Systeme mit niedrigen Ladungen tun, nutzen Sie ihre kostenlosen Dienste, die Grenzwerte sind attraktiv und bieten eine einfache Schnittstelle mit JSON und AJAX. Sie können die Grenzen anzeigen hier

Zu Ihren Informationen reicht VARCHAR (20) aus, um Postcodes zu speichern

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