2012-09-14 13 views
8

Come devo memorizzare Stati e Paesi?Devo memorizzare gli Stati Uniti nel mio database o in un array PHP?

Opzione 1) Potrei creare una tabella di database chiamata stati e avere 'id', 'stato' e 'stato_abbr'. Potrei quindi fare riferimento a ciò con 'id' nella tabella degli utenti.

Opzione 2) Potrei creare un array PHP e usarlo per popolare il menu a discesa degli stati ed evitare di interrogare del tutto il database. La chiave per l'array sarebbe il valore inserito nel database per quell'utente.

Gli stati non cambiano e pertanto i dati devono essere statici. Qual è il modo migliore per memorizzare queste informazioni e perché? Non sarebbe un array PHP più veloce? Perché sembra che il database sia il modo migliore per archiviarlo in quel momento?

Pensieri?

+0

Io uso un array PHP ... qualunque cosa. – jeremy

+2

Se anche gli stati vengono salvati come parte di altri record nel database, * si * - * con * i vincoli di riferimento appropriati. In caso contrario, non vedo alcun particolare vantaggio di un approccio rispetto all'altro. Non mi preoccuperei di "velocità" qui. Esistono altri meccanismi per affrontarlo, se necessario. –

+0

La memorizzazione in un array funzionerebbe più velocemente, ma l'utilizzo di un database è più versatile e consente di esportare e importare facilmente i dati, nonché la loro manipolazione. – Ynhockey

risposta

9

Un progettista di database saggia una volta mi ha detto: "Tutto ciò che sai sui codici di stato è sbagliato".

  • Questi sono codici a due lettere, non le abbreviazioni. (The abbreviation for California è "Calif." E l'abbreviazione per Ohio è "Ohio".)
  • There are more than 50 of them.
  • Non tutti i codici a due lettere si riferiscono agli stati. Si riferiscono anche a "beni" come "Stati Federati di Micronesia" e "Palau".
  • Non sono unici. Un codice di due lettere, AE, si riferisce a quattro diversi "stati" militari (Forze Armate Europa, Forze armate Canada, Forze armate Medio Oriente e Forze armate Africa).
  • I codici di "stato" militare possono cambiare al variare della forza della truppa. Invia alcune centinaia di migliaia di truppe in Africa, e probabilmente vedrai il codice per l'Africa delle Forze Armate cambiare da "AE" a "AF".
  • Ci sono una dozzina di territori che non sono ancora in questa lista. Alcuni di questi sono di interesse strategico (Wake Island, Midway Islands, ecc.) E il loro status potrebbe facilmente cambiare.

Dato che non è probabile conoscere tutte queste cose su una cosa così comune come i codici di stato USPS, ha più senso memorizzarli in un tavolo. Le tabelle sono più facili da gestire in fase di esecuzione rispetto a un array PHP.

5

Perché il database è il modo migliore per memorizzarlo.

E se l'anno prossimo la tua azienda decidesse di diventare internazionale? Quindi ora avete bisogno di paesi e di un dropdown dipendente per gli stati.

Quindi è necessario aggiungere l'europa, quindi l'africa .. Questo è un numero di paesi, insieme a una tonnellata di stati. Avrai bisogno di un grande array.

Quindi il tuo capo desidera un rapporto per paese.

Molto più facile da gestire se si dispone di tutto in un database.

Problemi correlati