Domanda

Quale è "migliore" modo per memorizzare indirizzi internazionali in un database?Rispondi sotto forma di uno schema e di una spiegazione dei motivi per cui hai scelto di normalizzare (o meno) il modo in cui lo hai fatto.Spiega anche perché hai scelto il tipo e la lunghezza di ciascun campo.

Nota:Decidi tu quali campi ritieni necessari.

È stato utile?

Soluzione

Testo semplice in formato libero.

Convalidare tutti i codici postali del mondo è troppo difficile;un elenco fisso di paesi è troppo politicamente sensibile;la suddivisione amministrativa obbligatoria per stato/regione/altra è semplicemente inappropriata (troppo spesso mi viene chiesto in quale contea vivo, quando non lo faccio, perché la Grande Londra non è affatto una contea).

Più precisamente, è semplicemente inutile.È altamente improbabile che la tua applicazione modelli indirizzi in modo serio.Se desideri un indirizzo postale, chiedi l'indirizzo postale.La maggior parte delle persone non è così stupida da inserire qualcosa di diverso dall'indirizzo postale e, se lo fa, può dire addio all'oggetto appena acquistato.

L'eccezione è se stai facendo qualcosa che è comunque naturalmente limitato a un paese.In questa situazione, dovresti chiedere, ad esempio, la coppia { codice postale, numero civico }, che è sufficiente per identificare un indirizzo postale.Immagino che potresti ottenere risultati simili con il codice postale esteso negli Stati Uniti.

Altri suggerimenti

In passato ho modellato moduli che dovevano essere internazionali dopo i moduli per l'indirizzo di spedizione ups/fedex sui loro siti web (ho pensato che se non sanno come gestire un ordine internazionale saremmo tutti imbrogliati).I campi che utilizzano possono essere utilizzati come riferimento per impostare il tuo schema.

In generale, devi capire perché desideri un indirizzo.È per la spedizione/invio postale?Allora c’è davvero solo un requisito: separare il paese.Le altre righe sono a mano libera e devono essere compilate dall'utente.La ragione di ciò è la comune strategia di inoltro della posta:tutta la posta in arrivo per un paese straniero viene inoltrata senza guardare le altre righe dell'indirizzo.Pertanto, le informazioni dettagliate vengono analizzate solo dallo smistatore di posta situato nel paese stesso.Come il curatore, avranno familiarità con le convenzioni nazionali.

(UPS potrebbe raggruppare alcuni piccoli paesi europei, ad es.probabilmente tutti i Paesi Bassi vengono serviti dal Belgio - l'idea è ancora valida.)

Penso che aggiungere il paese/città e il testo dell'indirizzo andrà bene.il paese e la città dovrebbero essere separati per il reporting.Manager Sempre chiedi questo tipo di rapporti che non ti aspetti e non preferisco eseguire una query LIKE attraverso un database di grandi dimensioni.

Per non dare a Facebook un rispetto indebito.Tuttavia, la struttura complessiva del database sembra essere trascurata in molte applicazioni web che vengono lanciate ogni giorno.Ovviamente non penso che esista una soluzione perfetta che copra tutte le potenziali variabili con la struttura degli indirizzi senza un duro lavoro.Detto questo, combinato con il completamento automatico, Facebook riesce a prendere i dati di input sulla posizione ed eliminare la maggior parte delle voci ridondanti.Lo fanno organizzando il loro database abbastanza bene da fornire al cliente informazioni di completamento automatico in modo a basso costo e con pochi errori in tempo reale, consentendogli di scegliere più o meno la posizione corretta da un elenco esistente.

Penso che la soluzione migliore sia accedere a un database di terze parti che contiene l'ambito geografico desiderato e utilizzarlo per seminare inizialmente le informazioni sulla posizione dell'utente.Ciò ti consentirà di evitare di fare le basi per crearne uno tuo.Con un po' di fortuna puoi ridurre il carico sul tuo server consentendo ai tuoi nuovi utenti di ricevere le informazioni corrette di completamento automatico direttamente dal tuo fornitore di terze parti.Alla fine sarai in grado di compilare la maggior parte del completamento automatico per informazioni sulla posizione come città, paese, ecc.dalle informazioni contenute nel proprio database dai dati di input dell'utente.

È necessario fornire ulteriori dettagli su come si prevede di utilizzare i dati.Ad esempio, campi come Città, Stato, Paese possono essere testo nella singola tabella o codici collegati a una tabella separata con una chiave esterna.

La cosa più semplice sarebbe

Indirizzo_line_01 (richiesto, non vuoto) indirizzo_line_02 Indirizzo_line_03 Landmark City (richiesto) PIN (richiesto) Provincia_Distrett Stato (richiesto) Paese (richiesto)

Tutto quanto sopra può essere testo/Unicode con lunghezze di campo appropriate.

Numeri di telefono a seconda dei casi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top