Pregunta

Cuál es el "mejor"¿Manera de almacenar direcciones internacionales en una base de datos?Responde en forma de esquema y explicación de las razones por las que elegiste normalizar (o no) la forma en que lo hiciste.Explique también por qué eligió el tipo y la longitud de cada campo.

Nota:Tú decides qué campos crees que son necesarios.

¿Fue útil?

Solución

Texto plano y libre.

Validar todos los códigos postales del mundo es demasiado difícil;una lista fija de países es demasiado sensible desde el punto de vista político;La subdivisión administrativa obligatoria de estado/región/otra subdivisión administrativa es simplemente inapropiada (con demasiada frecuencia me preguntan en qué condado vivo, cuando no es así, porque el Gran Londres no es un condado en absoluto).

Más concretamente, es simplemente innecesario.Es muy poco probable que su aplicación modele direcciones de manera seria.Si desea una dirección postal, solicite la dirección postal.La mayoría de las personas no son tan estúpidas como para poner algo más que una dirección postal y, si lo hacen, pueden despedirse del artículo recién comprado.

La excepción a esto es si estás haciendo algo que de todos modos está naturalmente limitado a un país.En esta situación, deberías pedir, por ejemplo, el par {código postal, número de casa}, que es suficiente para identificar una dirección postal.Me imagino que se podrían lograr cosas similares con el código postal extendido en los EE. UU.

Otros consejos

En el pasado, he modelado formularios que debían ser internacionales a partir de los formularios de dirección de envío de ups/fedex en sus sitios web (pensé que si no saben cómo manejar un pedido internacional, todos estamos arruinados).Los campos que utilizan se pueden utilizar como referencia para configurar su esquema.

En general, es necesario comprender por qué desea una dirección.¿Es para envío/correo?Entonces en realidad sólo hay un requisito: tener el país separado.Las otras líneas son de formato libre y las debe completar el usuario.La razón de esto es la estrategia común de reenvío de correo:cualquier correo entrante de un país extranjero se reenvía sin mirar las otras líneas de dirección.Por lo tanto, la información detallada es analizada únicamente por el clasificador de correo ubicado en el propio país.Al igual que el receptor, estarán familiarizados con las convenciones nacionales.

(UPS puede agrupar algunos pequeños países europeos, p..Probablemente todos los Países Bajos reciban servicio desde Bélgica (la idea sigue siendo válida).

Creo que agregar texto de país/ciudad y dirección estará bien.El país y la ciudad deben estar separados para la presentación de informes.Gerentes siempre Solicite este tipo de informes que no espera y no prefiero ejecutar una consulta LIKE a través de una base de datos grande.

No darle a Facebook un respeto indebido.Sin embargo, la estructura general de la base de datos parece pasarse por alto en muchas aplicaciones web que se lanzan todos los días.Obviamente, no creo que exista una solución perfecta que cubra todas las variables potenciales con estructura de direcciones sin un poco de trabajo duro.Dicho esto, combinado con la función de autocompletar, Facebook logra tomar datos de entrada de ubicación y eliminar la mayoría de sus entradas redundantes.Lo hacen organizando su base de datos lo suficientemente bien como para proporcionar al cliente información de autocompletar de forma económica y con pocos errores en tiempo real, permitiéndole elegir más o menos la ubicación correcta de una lista existente.

Creo que la mejor solución es acceder a una base de datos de terceros que contenga el alcance geográfico deseado y utilizarla para generar inicialmente la información de ubicación de su usuario.Esto le permitirá evitar hacer el trabajo preliminar de crear el suyo propio.Con un poco de suerte, podrá reducir la carga de su servidor permitiendo que sus nuevos usuarios reciban la información de autocompletar correcta directamente de su proveedor externo.Con el tiempo, podrá completar la mayor parte del autocompletado para obtener información de ubicación, como ciudad, país, etc.de la información contenida en su propia base de datos de los datos ingresados ​​por el usuario.

Debe proporcionar un poco más de detalles sobre cómo planea utilizar los datos.Por ejemplo, campos como Ciudad, Estado y País pueden ser texto en una tabla única o códigos vinculados a una tabla separada con una clave externa.

Lo más simple sería

Direcciones_line_01 (requerido, no en blanco) Dirección_line_02 Dirección_line_03 Landmark City (requerido) Pin (requerido) Province_District State (requerido) País (requerido)

Todo lo anterior puede ser Texto/Unicode con longitudes de campo adecuadas.

Números de teléfono según corresponda.

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