
Un alto porcentaje de las aplicaciones de gestión contienen información de provincias y poblaciones para el registro de direcciones de clientes, proveedores, trabajadores, agentes, etc. Guardar el contacto de estas personas es vital para el envio de facturas, recibos o cartas por correo ordinario.
Existen diferentes formas de crear esta información de poblaciones y provincias en tu aplicación para este envio de correo ordinario o gestión y organización de tus dátos desde el punto de vista demográfico. Esta información puede estar guardada tanto de manera más libre y desnormalizada para los casos en el que esta información no sea vital para tu negocio, hasta obtener información de fuentes públicas o profesionales. Veamos cada una de ellas reflexionando sobre sus inconvenientes.
Una de ellas es no normalizarlo de manera que en la alta en la ficha se introduzca el campo en texto abierto. De esta manera el usuario puede escribir cualquier población o provincia sin necesidad que esté dado de alta en una tabla maestra. Esta forma de desarrollar es la más fácil ya que no requiere más código funcional adicional que poner unos campos en la tabla de las personas donde queremos guardar su información. Esta forma de diseño tiene varios problemas:
La otra opción que tenemos es tener un diseño normalizado. Un diseño normalizado es aquel en el que los datos no van abiertos en los propios registros en el caso de repetirse, si no que van reglados por una o varias tablas adicionales llevando un identificador. Esta forma de diseño evita errores tipográficos pero también pueden existir problemas:
La solución ideal es tener la base de datos normalizada pero obtener los datos de las poblaciones de recursos profesionales o revisados convenientemente. Encontrar una base de datos así no es tarea fácil. Una posible fuente de datos pueden ser los datos del Instituto Nacional de Estadística donde aparecen totales demográficos por municipios. Otra posible fuente de datos la publicó recientemente Javier Casares a través de su blog donde se ofrece una base de datos bastante completa en el que se disponen de una tabla provincias y otra de poblaciones, así como información del código postal, latitud y longitud de la ubicación.
Con esta solución es más completa aunque no podemos encontrar con problemas si el cliente, ya sea persona o entidad, proviene de un país extranjero en el que nosotros no tengamos esta información en nuestra base de datos.
La solución definitiva para contemplar todos los posibles casos. Para ello se tendrían unas tablas de poblaciones y provincias. Sería aún más correcto (y más caro) tener esta información de manera multinivel. De esta forma se podrían incorporar términos como Comunidad Autónoma o niveles que puedan existir en otros paises que sean diferentes al estado español.
Además en esta solución ideal, el usuario final podría escribir un texto abierto en el caso de no encontrar su población. De esta manera dejamos solucionado el problema de no tener actualizado la base de datos. Pero este registro deberá ser marcado para que un trabajador revise estos y normalice los datos a posteriori comprobando los datos y actualizando la base de datos.
Tanto en este caso como en todos intenta elegir la solución según tus necesidades y recursos que no son infinitos y están limitados por tu entorno. Debes tener en cuenta que un diseño erroneo puede hacer que no puedas aplicar tu funcionalidad o por el contrario que el coste de desarrollo se incremente con funcionalidades no utilizadas.
Recurso para obtener lista de poblaciones | Instituto nacional de estadística
Recurso para obtener lista de poblaciones | Blog de Javier Casares
Imagen CC | Autor: duboix – Fuente: http://www.morguefile.com