Qual é a melhor maneira de armazenar e recuperar endereços postais usando um banco de dados SQL Server e o .NET Framework?

StackOverflow https://stackoverflow.com/questions/70153

Pergunta

Estou procurando um padrão comum que armazene e acesse endereços globais no banco de dados.Componentes ou outras tecnologias podem ser usados.Os seguintes critérios devem ser respeitados...

  • Cada linha do endereço é salva para cada país
  • Códigos postais são testados com uma expressão regular antes de serem salvos
  • O país do original é salvo em seu próprio campo. Quando os dados são exibidos, o [endereço é formatado] (http://en.wikipedia.org/wiki/Postal_address) no estilo daquele país
  • Quando os dados são inseridos por meio de um formulário, os campos dos rótulos são tão descritivos quanto possível, portanto os rótulos precisam ser dinâmicos para o país de origem.
  • Os endereços ocupam o mínimo espaço possível
Foi útil?

Solução

Vou encaminhá-lo para a postagem do meu blog - Uma lição sobre armazenamento de endereços por razões pelas quais você não deveria armazene endereços no formato atualmente aceito e deve ser normalizado corretamente!Não seja preguiçoso com o armazenamento de endereços, isso só lhe causará dores de cabeça no futuro!

Além disso, há outra pergunta do StackOverflow que faz essa pergunta.Intitulado Como os endereços geográficos internacionais devem ser armazenados em um banco de dados relacional.

Outras dicas

Que tal armazenar os endereços como texto (permitindo novas linhas).O código postal deverá ser extraído do endereço com uma regex (selecionado com base no menu suspenso do país) e deverá ser armazenado em uma coluna separada.

Isso não atende ao requisito "tão descritivo quanto possível", mas, em geral, impor mais restrições sobre o formato dos dados resultará na rejeição de uma porcentagem de endereços válidos.Também ocupará mais espaço do que uma única coluna varchar.Portanto, sempre haverá um compromisso entre os requisitos listados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top