¿Cuál es la mejor manera de almacenar y recuperar direcciones postales utilizando una base de datos de servidor SQL y el marco .NET?

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

Pregunta

Estoy buscando un patrón común que almacene y acceda a direcciones globales en la base de datos.Se pueden utilizar componentes u otras tecnologías.Se deben cumplir los siguientes criterios...

  • Cada línea de la dirección se guarda para cada país.
  • códigos postales se prueban con una expresión regular antes de guardarse
  • El país del original se guarda en su propio campo. Cuando se muestran los datos, la [dirección está formateada] (http://en.wikipedia.org/wiki/Postal_address) al estilo de ese país
  • Cuando los datos se ingresan mediante un formulario, los campos de las etiquetas son lo más descriptivos posible, por lo que las etiquetas deben ser dinámicas según el país de origen.
  • Las direcciones ocupan el mínimo espacio posible.
¿Fue útil?

Solución

Te remitiré a la publicación de mi blog. Una lección sobre almacenamiento de direcciones por razones por las que tu no debería almacene direcciones en el formato actualmente aceptado y debe normalizarse correctamente.¡No seas perezoso con el almacenamiento de direcciones, no te causará más que dolores de cabeza en el futuro!

Además, hay otra pregunta de StackOverflow que plantea esta pregunta.Con derecho ¿Cómo deberían almacenarse las direcciones geográficas internacionales en una base de datos relacional?.

Otros consejos

¿Qué tal almacenar las direcciones como texto (permitiendo nuevas líneas)?El código postal deberá extraerse de la dirección con una expresión regular (seleccionada según un menú desplegable de países) y deberá almacenarse en una columna separada.

Esto no aborda el requisito de "lo más descriptivo posible", pero en general, imponer más restricciones sobre el formato de los datos dará como resultado que se rechace un porcentaje de direcciones válidas.También necesitará más espacio que una sola columna varchar.Por lo tanto, siempre habrá un compromiso entre los requisitos que usted enumeró.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top