Tablas de Países, Provincias, Municipios y Códigos Postales
5 Ene 2009 por Carme
El esquema de continentes, países y ciudades es de uso común para cualquier aplicación. Si además queremos mantener una lista de direcciones quizá nos interese añadir también el código postal.
Estos días me he decidido a poner en una base de datos una serie de contactos. Como quiero evitar errores y que haya coherencia y consistencia con los datos, lo primero que he buscado es la estructura de países, algo que por lógica se necesita en muchísimas aplicaciones y parece obvio que será algo muy estandarizado o por lo menos muy consensuado.
Estructura de países del mundo
Lo primero que he hecho ha sido buscar la lista de países del mundo, con sus respectivos códigos internacionales (por ejemplo, sabemos que para España es ES, para Francia FR, para Alemania DE, etc.). Pero quería una lista que pudiese importar directamente a una base de datos, sin tener que entrarla de nuevo, ya que es más rápido y evita errores. Me ha gustado encontrar esta:
Según dice cumple con la norma internacional ISO y está disponible en tres formatos: xls, txt, csv. Como mi base de datos es una MySQL, elegí el formato csv, que se importa directamente mediante phpMyAdmin sin ningún problema.
Provincias y municipos de España
A continuación, para poder encontrar los códigos de las distintas provincias y municipios de España, podemos recurrir a la web del Instituto Nacional de Estadística, que cada año actualiza esta información y nos la ofrece en listados en formato xls:
He abierto el fichero en Open Office y lo he guardado en formato csv. A continuación lo he importado en MySQL sin problema.
En este fichero vemos que tenemos los códigos y nombres de los municipios y el código de las provincias. Ahora nos faltaría una tabla que relacione los códigos de las provincias con el nombre de cada una de ellas; nada difícil, pues no hay muchas.
Con esto sería suficiente según lo que queramos hacer, pero a mí personalmente también me interesa tener la clasificación por autonomías. No he podido encontrar ninguna tabla ya hecha, así que la he creado yo misma.
Los Códigos Postales
Si queremos añadir los códigos postales debemos tener en cuenta que no podemos relacionarlos directamente con los códigos de municipios que tenemos. Los códigos postales se asignan a calles y zonas que no tiene por qué coincidir obligatoriamente con un municipio. Así, a veces tenemos un municipio con un único código postal pero muchas otras veces tenemos varios códigos postales para distintas zonas de una misma localidad y también podemos encontrar varios municipios compartiendo un mismo código postal.
Al ir a buscar un listado de códigos postales, lo primero que piensas es en acudir a la web de correos, donde encontramos las tablas de la base de datos con unas tarifas a precios desorbitados; no guardan ninguna proporción con el precio real de mercado.
Nada que ver con la generosidad de Albin, que nos ofrece gratuitamente la base de datos completa en 3 formatos: txt, xml y MySQL ¡¡Gracias, amigo!!
Sin embargo, en mi caso no ha sido posible utilizarla directamente porque la importación de la base de datos me daba un error de “checksum” en el formato MySQL, en todos los intentos de importación.
Tampoco parecía tener éxito con el formato txt (tras conversión a csv), pues también da error grave. Pero, a diferencia del otro formato, pude acceder al archivo y finalmente encontré el error: existe una calle en Córdoba, dos en Madrid y una en Las Palmas (Quemadillas, Princesa Juana y Canteras) en las que se ha incluído un punto y coma, con lo cual la importación de datos interpreta que en esos registros existe un campo de más que no puede procesar. Sólo tuve que corregirlo y ya pude importar sin problemas.
En esta base de datos salen muchos más municipios que en el listado del INE, así que he substituido la anterior lista de municipios por esta otra, más completa.
El resto de países
Dado que me ha costado más de lo que creía conseguir esta estructura, dejo para más adelante el resto de países.
O puede que quizá más adelante compre alguna estructura de base de datos, pero a un precio asequible
Technorati Tags: códigos postales, csv, mysql



















