No meu último post, escrevi sobre como garantir que seu modelo de dados lide adequadamente com informações globais:números, moedas, números de telefone, endereços, datas e fusos horários, entre outras coisas. No entanto, percebi que muitos modelos de dados de exemplo têm exatamente a abordagem “autocentrada” ou “Amero-centrada” contra a qual alertei.
Como americano que vive no exterior (há quase 30 anos), muitas vezes acho que as pessoas fazem muitas suposições sobre a universalidade do que sabem. Por exemplo, alguns americanos supõem que outros entendem automaticamente o sistema de CEP de seu país e sua versão ZIP+4 suplementar. Na minha experiência, a maior parte do mundo não tem ideia do que é um ZIP+4.
Então pensei que seria bom escrever sobre uma abordagem mais global para modelar endereços.
Endereços conhecidos em todo o mundo
Vamos pegar alguns endereços conhecidos e alguns menos conhecidos em todo o mundo e criar um modelo de dados que suporte seu armazenamento.
Vou começar com o endereço do presidente dos Estados Unidos:a Casa Branca.
Casa Branca
1600 Pennsylvania Avenue NW
Washington, DC 20500
Agora, 1600 é o que geralmente é chamado de número da rua ou número da casa. Esse é o número da casa (prédio) na rua. Pennsylvania Avenue é o nome da rua. “NW” é a abreviatura de Northwest e refere-se à seção de Washington onde este endereço específico está localizado. Curiosamente, 1600 Pennsylvania Avenue SE é um endereço completamente diferente; é um prédio de apartamentos.
Washington, então, é o nome da cidade. E DC, ou Distrito de Columbia, é o “estado”; no entanto, DC é especial entre os estados americanos. Washington D.C. é a capital dos Estados Unidos, mas não é propriamente um estado e não conta como um dos 50 estados americanos. (Existe um estado de Washington, mas está localizado na costa completamente oposta de D.C. Você pode conhecê-lo como o lar da Starbucks, Boeing e outras empresas famosas.) Nosso ponto é que no sistema postal dos EUA, “DC” funciona como qualquer outra abreviatura de estado.
Agora, esse número:20500. Na maioria dos países, isso seria chamado de código postal ou código postal; Os americanos chamam isso de CEP. Os códigos ZIP (Zone Improvement Plan) foram introduzidos nos EUA em 1963. Vemos que para a Casa Branca, o código postal é 20500.
Em 1983, o Serviço Postal dos EUA queria ser mais preciso, então eles criaram um código ZIP+4 estendido. Este CEP+4 inclui os cinco dígitos do CEP, um hífen e quatro dígitos adicionais que apontam para um local específico dentro do CEP. O ZIP+4 do presidente dos EUA é 20500-0001. O ZIP+4 da Primeira Dama (esposa do Presidente) é 20500-0002. E o ZIP+4 da Casa Branca é 20500-0003.
Embora o ZIP+4 possa ser bastante preciso, raramente você encontrará um ZIP+4 usado para uma única pessoa. Eles geralmente se referem a uma caixa postal (para uma grande empresa), uma série de caixas postais ou um bairro dentro de uma cidade.
Beverly Hills 90210
Dependendo da sua idade, você pode conhecer a série de TV americana 90210 ou Beverly Hills 90210 . Esta popular novela adolescente é outro bom exemplo do sistema postal dos EUA em ação. Algumas pessoas pensam que é o endereço exato de um bairro, de uma rua ou mesmo de uma determinada casa.
Primeiro, vamos começar com alguns antecedentes. Beverly Hills é uma cidade no condado de Los Angeles, na Califórnia. É o lar de muitas estrelas de Hollywood e da sofisticada rua comercial Rodeo Drive (que ficou famosa no filme de 1990 Pretty Woman ).
https://goo.gl/maps/gqdvgRMNn472
Um dos CEPs em Beverly Hills é 90210, mas a cidade de Beverly Hills também usa outros CEPs (90209, 90211, 90212 e 90213). O código 90210 refere-se a um dos bairros mais elegantes de Beverly Hills e, portanto, a um bairro exclusivo em uma parte nobre de Los Angeles.
Mas o CEP 90210 se estende além de Beverly Hills. Inclui algumas das adjacentes Hollywood Hills. Você conhece as colinas onde está localizada a placa “HOLLYWOOD”? Isso está no CEP 90210.
https://goo.gl/maps/Fa2t8SQaGj222
A parte restante deste ZIP, que se estende ao norte até Mulholland Drive (imortalizado no thriller psicológico de David Lynch em 2001), foi deixado como parte das colinas de Los Angeles, onde permaneceu anônimo por décadas.
Palácio de Buckingham
O Palácio de Buckingham tem um endereço simples, então se você quiser escrever para a Rainha Elizabeth, basta enviar uma mensagem para:
Palácio de Buckingham
Londres SW1A 1AA, Reino Unido
Neste endereço, encontramos um tipo ímpar de código postal. No Reino Unido (mais os países que compõem a Comunidade Britânica e a maioria das ex-colônias britânicas), o código postal é alfanumérico. Compare isso com o código postal totalmente numérico encontrado em muitos outros países, incluindo os códigos postais dos EUA.
No Reino Unido, o código postal geralmente contém um “código da cidade” de uma ou duas letras com o nome de uma cidade local ou de uma área de Londres. No nosso exemplo, este é o “SW”, que se refere à parte sudoeste de Londres. É seguido por um ou dois dígitos que significam um distrito naquela região – o “1A”. Em seguida, existe um código arbitrário composto por um número e duas letras, que neste caso é “1AA”.
Número 10
Você pode encontrar o primeiro-ministro britânico no endereço conhecido como “Número 10”, que leva o nome do número da rua do prédio:
10 Downing St
Londres SW1A 2AA, Reino Unido
Assim como o Palácio de Buckingham, o “Número 10” está localizado na parte sudoeste de Londres. Os códigos postais em algumas cidades do Reino Unido podem até ajudá-lo a reconhecer em que parte da cidade um endereço está localizado.
Palácio do Eliseu
Por outro lado, geralmente você pode encontrar o presidente francês neste endereço:
55 Rue du Faubourg Saint-Honoré 75008
Paris, França
Este exemplo segue um padrão familiar:o número da rua (55) e o nome da rua (Rue du Faubourg Saint-Honoré) vêm primeiro.
Em seguida, encontramos um código postal de 5 dígitos. Nos códigos postais franceses, os dois primeiros dígitos indicam em que “departamento” (região) o endereço está localizado. Para códigos postais parisienses, os três últimos dígitos indicam o “arrondissement” (bairro) do endereço. Assim, neste caso, o código postal indica a vizinhança do endereço.
Endereços menos conhecidos (mas complicados)
Índia
Chega de endereços simples. Em alguns países, é raro usar números de rua. Em vez disso, os endereços podem especificar que um local está próximo a um site conhecido. Ou podem apenas indicar o nome do prédio e o bairro em que está localizado.
Aqui está o endereço de um hotel Hyatt na cidade indiana de Pune, no estado de Maharahashtra.
Hyatt Pune
Adjacente ao Palácio de Aga Khan, Nagar Road, Kalyani Nagar
Pune, Índia, 411006
Aqui encontramos outro código postal, mas neste caso não são 4 dígitos, nem 5 dígitos, nem 5+4 dígitos, nem uma mistura de dígitos e letras. São 6 dígitos. O código postal indiano começa com um código de região, depois um código de sub-região e um código que representa o distrito de classificação. Isso não é uma informação muito útil se você estiver tentando encontrar esse local pessoalmente!
Nesse caso, não há menção ao estado em que Pune está localizada. No entanto, quando várias cidades compartilham o mesmo nome, mas estão localizadas em diferentes estados indianos, um estado pode ser incluído no endereço.
Encontramos um nome de rua (Nagar Road) e a indicação do bairro (Kalyani Nagar), mas não há um número real de rua. Você pode andar para cima e para baixo na Nagar Road procurando por esse local. Assim, encontramos a localização especificada como sendo adjacente a um local bem conhecido – o Palácio de Aga Khan.
Japão
Vou pegar um exemplo de mais um hotel Hyatt, que você pode ter visto no filme “Lost In Translation”:
Park Hyatt Tóquio
3-7-1-2 Nishi Shinjuku, Shinjuku-Ku
Tóquio, Japão, 163-1055
Só para dizer o óbvio, estou usando a formatação ocidental e uma tradução em inglês em vez de caracteres japoneses aqui.
Novamente, você pode encontrar elementos de bairro, cidade e código postal neste endereço. “Nishi-Shinjuku” (西新宿) é o distrito comercial de arranha-céus no bairro de Shinjuku, em Tóquio.
Agora, em que rua fica este hotel? A partir do endereço, você não tem idéia. Os nomes das ruas raramente são usados, e a maioria das ruas japonesas nem tem nomes (exceto em algumas cidades, como Kyoto).
E não tente andar pela rua procurando por prédios marcados com 3-7-1-2. Esses números referem-se a distritos, seções, subseções e quarteirões específicos (neste caso, dentro de Tóquio).
O sistema de endereços japonês, quando escrito em estilo ocidental, começa com a menor entidade (normalmente um número de casa) e prossegue para a maior. Muitas vezes você encontrará “Chome” no endereço, que é um distrito da cidade (丁目 chōme).
Por que modelagem de endereço autocentrada?
Um problema com a modelagem de endereço é quando um autor cria um modelo que apenas suporta seu endereço local corretamente. Eu expliquei isso em meu outro post, então vou resumir os principais problemas:
- Um modelo de dados projetado para um público local geralmente não aceita informações de um país diferente. Por exemplo, se alguém do Reino Unido tentasse inserir seu código postal alfanumérico de oito dígitos em um campo CEP americano de cinco dígitos, somente numérico, não funcionaria.
- Um público internacional pode não entender ou usar os mesmos termos, formatos e layouts que um público local.
Então porque isso acontece? Falta previsão, mas também tem a ver com treinamento. Se os modeladores de dados não forem ensinados a pensar globalmente, eles quase sempre pensarão localmente. Sem querer insistir – novamente, eu mencionei isso no post mencionado acima – mas é comum em muitos livros didáticos de modelagem de banco de dados focar em uma abordagem centrada em Amero.
Felizmente, pensar globalmente em termos de modelagem de dados para endereços multinacionais não é uma habilidade difícil de adquirir. Tem a ver com previsão e flexibilidade.
A solução:modelagem de endereço global
Eu fiz um modelo de dados para armazenar endereços globais.
Existem dois campos de linha de endereço genéricos (
AddressLine1
e AddressLine2
do Address
table) que armazenará praticamente qualquer endereço. Isso deve funcionar se estivermos armazenando “10 Downing St”, “adjacente ao Palácio de Aga Khan” ou “3-7-1-2 Nishi Shinjuku”. O risco é que dois campos de 70 caracteres sejam muito curtos para alguns endereços. Ainda assim, 140 caracteres devem ser suficientes para quase todas as situações. Eu usei a convenção comum de dois campos de linha de endereço para que eu possa fazer
AddressLine1
obrigatório (não anulável) e AddressLine2
opcional (anulável). Portanto, este modelo requer que algumas informações de endereço são fornecidas, mas permitem endereços detalhados muito curtos e muito longos. Em seguida, vamos ver o código postal/CEP. O
PostCode
O campo é flexível e não tem restrições sobre as informações que podem ser armazenadas nele. Isso suportaria CEPs americanos, CEP+4 americanos, códigos postais de 4 dígitos, códigos postais de 5 dígitos, códigos postais britânicos (com letras e dígitos) e muitos outros tipos de códigos postais. A
Region
campo armazena regiões dentro de um país (ou seja, estados, províncias, departamentos, etc.), mas este campo é anulável. Obviamente, um modelo de endereço global exige que o país seja especificado por meio de um código de país ISO de 2 caracteres (o Country
campo no Address
tabela). Agora, por favor, abra o modelo e dê um ajuste. É por isso que criamos o modelo em primeiro lugar. Talvez você possa ver maneiras de melhorar o modelo. Ou talvez você precise adaptá-lo às suas necessidades específicas. Por favor, sinta-se à vontade para brincar com ele e torná-lo seu.
Qual é o seu endereço? Pode caber neste
Address
projeto de mesa? Se não, avise-nos! Seria interessante saber o que deve ser estendido para dar suporte ao seu endereço.