Sollte ich US States in meiner Datenbank oder einem PHP-Array speichern?

8

Wie soll ich Staaten und Länder lagern?

Option 1) Ich könnte eine Datenbanktabelle mit dem Namen states erstellen und habe 'id', 'state' und 'state_abbr'. Ich könnte das dann mit 'ID' in der Benutzertabelle referenzieren.

Option 2) Ich könnte ein PHP-Array erstellen und verwenden, um das Dropdown-Menü "Status" zu füllen und die Datenbank nicht vollständig abzufragen. Der Schlüssel für das Array wäre der Wert, der für diesen Benutzer in die Datenbank eingefügt wird.

Die Zustände ändern sich nicht und daher sollten die Daten statisch sein. Was ist der beste Weg, um diese Informationen zu speichern und warum? Wäre ein PHP-Array nicht schneller? Warum scheint es, als ob die Datenbank der beste Weg ist, es dann zu speichern?

Gedanken?

    
Jacob Haug 14.09.2012, 23:15
quelle

2 Antworten

9

Ein kluger Datenbankdesigner hat mir einmal gesagt: "Alles, was Sie über Zustandscodes wissen, ist falsch."

  • Dies sind zweibuchstabige Codes, keine Abkürzungen. ( Die Abkürzung für Kalifornien ist "Calif.", und die Abkürzung für Ohio ist "Ohio" .)
  • Es gibt mehr als 50 davon .
  • Nicht alle der aus zwei Buchstaben bestehenden Codes beziehen sich auf Staaten. Sie beziehen sich auch auf "Besitzungen" wie "Föderierte Staaten von Mikronesien" und "Palau".
  • Sie sind nicht einzigartig. Ein zweibuchstabiger Code, AE, bezieht sich auf vier verschiedene militärische "Staaten" (Streitkräfte Europa, Streitkräfte Kanada, Streitkräfte Mittlerer Osten und Streitkräfte Afrika).
  • Militärische "staatliche" Codes können sich ändern, wenn sich Truppenstärke ändert. Schicken Sie ein paar hunderttausend Soldaten nach Afrika, und Sie werden wahrscheinlich sehen, dass der Code für Armed Forces Africa von "AE" zu "AF" wechselt.
  • Es gibt ungefähr ein Dutzend Gebiete, die noch nicht in dieser Liste enthalten sind. Einige davon sind von strategischem Interesse (Wake Island, Midway Islands usw.) und ihr Status könnte sich leicht ändern.

Vorausgesetzt, dass Sie wahrscheinlich nicht alle diese Dinge über eine so allgemeine Sache wie USPS-Staatscodes wissen, ist es sinnvoller, sie in einer Tabelle zu speichern. Tabellen sind zur Laufzeit einfacher zu warten als ein PHP-Array.

    
Mike Sherrill 'Cat Recall' 15.09.2012, 01:56
quelle
5

Weil die Datenbank der beste Weg ist, um sie zu speichern.

Was, wenn Ihr Unternehmen nächstes Jahr beschließt, international zu werden? Also jetzt brauchst du Länder und ein abhängiges Dropdown für Staaten.

Also müssen Sie Europa hinzufügen, dann Afrika .. Das ist eine TON von Ländern, zusammen mit einer Tonne von Staaten. Sie werden ein großes Array benötigen.

Dann möchte Ihr Chef einen Bericht nach Land.

Viel einfacher zu verwalten, wenn Sie alles in einer Datenbank haben.

    
Kris 15.09.2012 00:01
quelle

Tags und Links