Frage

Ich bin eine Web-Anwendung zu schreiben, dh US spezifisch, so dass das Format, die anderen Länder Postleitzahlen verwenden, ist nicht wichtig. Ich habe eine Liste von uns Postleitzahlen, die ich versuche in einer Datenbanktabelle zu laden, die die

enthält
  • 5-stellige Postleitzahl uns
  • Breite
  • Länge
  • USPS Klassifizierungscode
  • Statuscode
  • Stadt

die Postleitzahl ist der Primärschlüssel, da sie, was werde ich gegen sein abfragt. Ich begann ein Medium int 5 verwendet, aber das kürzt die Postleitzahlen, die führenden Nullen haben.

i betrachten eine char5 verwenden, aber sind besorgt über die Performance-Einbußen der Indizierung gegen einen char-Variable.

so meine Frage ist, was ist der beste MySQL-Datentyp als Postleitzahlen zu speichern?

Hinweis: Ich habe es in mehreren anderen Fragen zu Postleitzahlen im Zusammenhang gesehen. Ich bin nur in der US-5-stelligen Postleitzahlen interessiert. So gibt es keine Notwendigkeit, andere Länder Postleitzahl Formate zu berücksichtigen.

War es hilfreich?

Lösung

char (5) ist der richtige Weg zu gehen. String Indizierung ist recht schnell, vor allem, wenn es so ein kleiner Datensatz.

Sie sind richtig, dass Sie nie eine ganze Zahl für eine Postleitzahl verwendet werden sollen, da es nicht wirklich numerische Daten sind.

Bearbeiten hinzuzufügen: Schauen Sie sich diese für eine gute Gründe, warum Sie verwenden Zahlen nicht für nicht-numerisch wichtige Daten: Ist es eine gute Idee, eine ganze Spalte zum Speichern von US Postleitzahlen in einer Datenbank verwenden?

Andere Tipps

gehen Sie mit Ihrem Medium INT (5) ZEROFILL, sollte es die führenden Nullen für Sie hinzufügen. Keine Notwendigkeit, den Index und Leistung auf einer Formatierung Ausgabe auswirken.

Wenn er macht es Char (6), dann hat er auch kanadische Postleitzahlen verarbeiten kann.

Wenn man bedenkt, dass es maximal 100.000 5-stellige Postleitzahl und wie wenig Platz sie auch nehmen würde, wenn Sie die gesamte Tabelle speicherresidenten gemacht, gibt es keinen Grund, nicht zu.

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