Memorizzazione di un indirizzo postale in un database: quale struttura dovrei usare per le app internazionali?

7

Avrò utenti internazionali che usano il mio database, ma non so come funziona il sistema di posta elettronica al di fuori degli Stati Uniti.

I concetti "Città", "Stato, Paese e eventualmente" Zip "sono sufficienti per acquisire qualsiasi gerarchia (anche se era solo a 2 livelli di profondità: (città / paese)

    
posta random65537 06.12.2013 - 23:14
fonte

2 risposte

7

Utilizza un singolo campo di testo semplice!

A meno che non si stia costruendo un database per l'ottimizzazione delle consegne o altro uso altamente locale, è necessario procedere e memorizzare l'indirizzo completo come campo di testo con interruzioni di riga standard.

Se ci sono ulteriori informazioni di cui hai bisogno, ad esempio un codice postale o una strada per l'ordinamento e il raggruppamento in modo da ottenere uno sconto per la posta, puoi memorizzarlo in un campo aggiuntivo o semplicemente determinarlo al momento della posta via di una logica abbastanza semplice. (Oppure puoi assegnare ad ogni indirizzo una chiave permanente e avere informazioni per lo sconto fornite tramite altre tabelle.)

Ora, non sto dicendo che non dovresti fornire un modulo di indirizzo multiparte con elenchi di città e stati e forse un riferimento automatico a API indirizzo postale , ma non hai chiesto come costruire un modulo per l'input dell'utente, hai chiesto come memorizzare l'indirizzo in un database.

Naturalmente, se lo fai, potresti voler archiviare un blob JSON o XML in modo che i campi possano essere ripopolati, ma non si tratta di dati di cui il database stesso deve necessariamente occuparsi ...

    
risposta data 07.12.2013 - 01:10
fonte
5

Come con tutto, c'è uno standard internazionale. In questo caso è ISO / IEC 19773 Parte 08: struttura dati per i dati postali UPU . Ma come al solito con gli standard internazionali, sono davvero complessi. Questo ha 30 pagine e definisce circa 50 possibili elementi che possono far parte di un indirizzo postale completo per coprire qualsiasi schema di indirizzamento utilizzato in qualche parte del mondo.

Sebbene questo potrebbe essere il modo corretto per memorizzare un indirizzo, potrebbe non essere praticabile .

Per una panoramica di come appaiono gli indirizzi nei diversi paesi, potresti dare un'occhiata a l'articolo di Wikipedia su indirizzi postali . Come vedi, quasi tutti i paesi usano persona, numero civico, strada e città (ma ci sono alcuni casi strani, come l'Iran, in cui gli edifici hanno nomi anziché numeri o Giappone, dove alcune città usano i sistemi di coordinate ). Inoltre, alcuni paesi sono divisi in regioni e alcuni li dividono ulteriormente in sottoregioni. La maggior parte dei paesi utilizza i codici di avviamento postale di diversa lunghezza e di solito ci si aspetta che portino le stesse informazioni di regione, sottoregione e città, ma di solito si prevede che queste informazioni confermino che il codice postale è corretto.

Quindi cosa significa per lo sviluppatore di un database di indirizzi veramente internazionale? Sii flessibile. Non rendere necessario alcun campo e consentire alcuni campi opzionali per scopi generali che possono essere utilizzati per rappresentare stranezze regionali.

    
risposta data 07.12.2013 - 00:16
fonte

Leggi altre domande sui tag