Espero que a coluna seja um VARCHAR2, em meu banco de dados Oracle.
CEPs dos EUA são 9.
O canadense tem 7 anos.
Estou pensando que 32 caracteres seria um limite superior razoável
o que estou perdendo?
[EDIT] TIL: 12 é uma resposta razoável à pergunta Obrigado a todos que contribuíram.
database
oracle
globalization
postal-code
EvilTeach
fonte
fonte
Respostas:
Percorrendo a página de códigos postais da Wikipedia , 32 caracteres devem ser mais que suficientes. Eu diria que até 16 caracteres é bom.
fonte
Como já levantado por @neil-mcguigan, a wikipedia tem uma página decente sobre o assunto. Com base nesses 12 caracteres deve fazê-lo: http://en.wikipedia.org/wiki/List_of_postal_codes
O artigo da Wikipedia lista ~ 254 países, o que é muito bom em relação à UPU (União Postal Universal), que tem 192 países membros.
fonte
Por que você declararia um tamanho de campo maior do que os dados reais que espera armazenar nele?
Se a versão inicial do seu aplicativo for compatível com endereços dos EUA e Canadá (o que estou deduzindo do fato de você chamar esses tamanhos em sua pergunta), declararei o campo como VARCHAR2 (9) (ou VARCHAR2 ( 10) se você pretende armazenar o hífen nos campos ZIP + 4). Mesmo olhando para as postagens que outras pessoas fizeram nos códigos postais de vários países, VARCHAR2 (9) ou VARCHAR2 (10) seria suficiente para a maioria, senão todos os outros países.
Abaixo da linha, você sempre pode ALTERAR a coluna para aumentar o comprimento, caso seja necessário. Mas geralmente é difícil evitar que alguém, em algum lugar, decida ser "criativo" e coloque 50 caracteres em um campo VARCHAR2 (50) por um motivo ou outro (ou seja, porque eles querem outra linha em uma etiqueta de envio). Você também tem que lidar com o teste dos casos limites (será que todo aplicativo que exibe um ZIP manipula 50 caracteres?). E com o fato de que quando os clientes estão recuperando dados do banco de dados, eles geralmente estão alocando memória com base no tamanho máximo dos dados que serão buscados, e não no comprimento real de uma determinada linha. Provavelmente não é um grande negócio neste caso específico, mas 40 bytes por linha podem ser um pedaço decente de RAM para algumas situações.
Como um aparte, você também pode considerar armazenar (pelo menos para endereços nos EUA) o código postal e a extensão +4 separadamente. Geralmente é útil ser capaz de gerar relatórios por região geográfica, e você pode querer frequentemente colocar tudo em um CEP em vez de dividi-lo pela extensão +4. Nesse ponto, é útil não ter que tentar SUBSTR out os primeiros 5 caracteres para o código postal.
fonte
O que está faltando é um motivo pelo qual você precisa que o código postal seja tratado de maneira especial.
Se você realmente não precisa TRABALHAR com um código postal, sugiro que não se preocupe com isso. Por trabalho, quero dizer fazer um processamento especial em vez de apenas usar para imprimir etiquetas de endereço e assim por diante.
Simplesmente crie três ou quatro campos de endereço de VARCHAR2 (50) [por exemplo] e deixe o usuário inserir o que quiser.
Você realmente precisa agrupar seus pedidos ou transações por código postal? Acho que não, uma vez que diferentes países têm esquemas muito diferentes para esse campo.
fonte
Normalização? Os códigos postais podem ser usados mais de uma vez e podem estar relacionados a nomes de ruas ou cidades. Tabela (s) separada (s).
fonte
Os códigos postais canadenses têm apenas 6 caracteres, na forma de letras e números (LNLNLN)
fonte
O Reino Unido publicou padrões: Catálogo de padrões de dados do governo do Reino Unido
Endereço Postal Internacional:
O comprimento do código postal do Reino Unido é:
fonte
Se você deseja integrar os códigos postais no banco de dados, é melhor usar o banco de dados de nomes geográficos. Embora seja difícil de usar e entender, é o maior banco de dados geográfico disponível gratuitamente para usuários como nós.
Todos os outros bancos de dados têm mais ou menos probabilidade de ter os mesmos dados e estrutura. Eles apenas removem algumas informações extras / redundantes do banco de dados. Se você está fazendo isso apenas para sistemas de baixa carga, use seus serviços gratuitos, os limites são atraentes e fornecem uma interface mais fácil usando json e ajax. Você pode ver os limites aqui
Para sua informação, varchar (20) é suficiente para armazenar códigos postais
fonte