Hola gente del foro/visitantes!
Como se ha hablado en este tema (http://foro.elhacker.net/bases_de_datos/base_de_datos_de_localidades_de_todo_el_mundo-t287422.0.html), parece que a varios usuarios (y seguramente muchos programadores) les hace falta una base de datos que posea localidades (ciudades, pueblos, etc etc..) de todo mundo.
Hoy estuve viendo, y parece que no es tan facil encontrar una base de datos del estilo, totalmente "limpia" (sin localidades repetidas y/o con errores graves).
Pero encontré GeoNames.org, pero la cual, tiene un defecto importante: Tiene todo totalmente desparramado en 1 sola tabla. Totalmente ineficiente.
Esa base de datos tiene informacion hasta de las cosas mas inospitas de la tierra, y como muchos sabran: Exceso de informacion, es falta de informacion.
Aunque GeoName, nos facilita algo:
Nos puede dar todo el rejunte de informacion por Pais. O sea que puedo descargar todo eso desparramado de Argentina.
Yo conozco argentina, y por ende, sé cuales cosas son Provincias, Localidades, etc.
Puedo deducirlo tambien en base a una tabla que da GeoName, donde clasifica las entradas de la base de datos, con un campo: "FCLASS". Recien investigando, me di cuenta que FCLASS=PPL, son las localidades y Paises. Es cuestion de borrar las entradas que FCLASS no es ="PPL" y listo.
Pero, hay paises que son totalmente inestables, como EE.UU. donde no solo existen PROVINCIAS, sino que tambien esas provincias (ellos lo llaman ESTADO) tienen sub-diviciones, y esas tienen mas subdiviciones, y a la vez mas y mas y mas!!.....
Entonces me dije una cosa:
Si los chicos del foro me dicen exactamente sobre que paises estan interesados tener esta informacion, yo podria descargarlos individualmente y lograr armar una tabla: PAISES, una tabla PROVINCIAS y una tabla LOCALIDADES/CIUDADES.
Aquel de quiera que su pais, o X pais aparezca en la base de datos, tendrá que dar la siguiente informacion:
*Nombre del Pais
*Nombre de todas sus Provincias
Para ARGENTINA, no será necesario, ya que yo conozco que Provincias tiene.
Ahora por favor, alguien empiece a pedir Paises y diga el nombre de todas sus provincias.
Alguien quiere participar?
Yo luego armo todas las tablas
Buen aporte para la gente de desarrollo web digo ::) portales y formularios. ;-)
Si todavia fuese Moderad@r de esta area te diera chincheta :rolleyes: pero como no lo soy, dejemos a Napk haber si lo considera y se anima :P
A ver si empiezas Tiffa dando los nombres de la provincias donde vives
CitarA ver si empiezas Tiffa dando los nombres de la provincias donde vives
Yo :o :o :o :o
Apenas se como se llama la provincia donde yo vivo :xD nisiquiera se cuantas provincias en total tiene el pais :xD :xD
Bueno.
Parece que por ahora nadie se interesa.
Es probable que empiece con algunos paises de Sud-Centro america y Europa.
Comenzaré con Argentina + Mexico + Colombia + España
Luego seguiré con demas de Sudamerica..
Me apunto siempre y cuando se plantee la estructura de la BD ... saludos.
Creo que el quiere que digas de que pais eres y indiques todas las provincias de ese pais.
Cita de: Baaaw Oic en 20 Marzo 2010, 04:21 AM
Me apunto siempre y cuando se plantee la estructura de la BD ... saludos.
Claro que si tio... Si despues subiré los archivos para que utilices en tu web..
Cita de: ^TiFa^ en 20 Marzo 2010, 04:45 AM
Creo que el quiere que digas de que pais eres y indiques todas las provincias de ese pais.
+1
Gracias Tiffa
con buscar 10 minutos en wikipedia tenes todas las provincias que quieras.. :¬¬
Estados Unidos tiene esta jerarquia:
-País
-Estado
-Condando
-Ciudad
Sin embargo, el condado siempre se obvia en ese tipo de formularios, asi que puedes seguir la misma logica Ciudad-Estado-Ciudad
Saludos
EDITO: En la pagina de sexyono estan las localidades mas importantes de paises hispanos y E.U.
Cita de: rob1104 en 20 Marzo 2010, 05:07 AM
Estados Unidos tiene esta jerarquia:
-País
-Estado
-Condando
-Ciudad
Sin embargo, el condado siempre se obvia en ese tipo de formularios, asi que puedes seguir la misma logica Ciudad-Estado-Ciudad
Saludos
EDITO: En la pagina de sexyono estan las localidades mas importantes de paises hispanos y E.U.
Bien..!!
Dame tu link y te pongo un 10 chico sexy! jajajajaj
Aqui es
Pais
- Departamento
- Provincia
- Distrito
Esta en wikipedia pero la idea es tener un archivo unico con todos los datos ya metidos en la BD.
Aqui en chile es:
Pais
-Region
-Provincia
-Comuna
-Ciudad
-Sector
-Poblacion o villa
-Calle
-Mi casa xD
y la BD seria una verdadera celula
cada pais debe tener n regiones,
cada region debe tener n provincias
cada provincia debe tener n ciudades
saludos
Donde vivo es:
Pais
Provincia
Lo de calle y Sector eso es ya individual a lo que Skeletron esta solicitando supongo :P
Pero considerando los ejemplos de como esta organizado todo en sus paises... la estructura final de las tablas deberan ser varias, ya que hay paises que tienen detalles de sus localidades que otros no la tienen... serian varias tablas hijas y una padre para la relacion..
Haber esperemos la estructura de Skeletron.
Cita de: ^TiFa^ en 21 Marzo 2010, 16:08 PM
Pero considerando los ejemplos de como esta organizado todo en sus paises... la estructura final de las tablas deberan ser varias, ya que hay paises que tienen detalles de sus localidades que otros no la tienen... serian varias tablas hijas y una padre para la relacion..
yo creo que debemos tomar los atributos que estan en todas las localidades en comun como obligatorios (1,1)y los que estan en especificos que sean opcionales (0,1), todo en una sola tabla
asi nos evitamos estar haciendo muchas tablas y dejamos una comun y generica que es mas facil de entender y administrar para relacionar con demas tablas, bueno dependiendo del uso que se le de xD
saludos
Aunque reconozco que hay ocasiones donde desnormalizar una estructura de tablas es beneficioso he inclusive mas optimizado que la normalizacion. Por etica, por limpieza y por mejor manejo ante cualquier modificacion o cambio que otra persona quiera darle a la estructura de tablas, deberia considerarse un poco la normalizacion aqui. No puedo decir que inconvenientes podria tener (podrian haber datos duplicados, donde Sector en X pais y donde no exista Sector en otro pais porke no lo usen por ejemplo, pues... que valor iria alli NULL :huh: ? ) hay que ver primero el planteamiento que Skeletron esta considerando... pero para este caso especifico, al menos yo si me inclinaria por la normalizacion antes de la desnormalizacion, aunque eso incluya crear un sinumero distinto de tablas..
bueno si esperemos a eskeletron
bueno para mi seria mas facil administrar 1 tabla que varias, bueno eso va a criterio de uno, creo
pero como dices, para que otra persona despues pueda actuar sobre la base de datos es mejor dejarlo normalizado.
o bien hacer la normalizadas como lo que has planteado y de ahi optimizarla al gusto del que la use :)
saludos
Ok Ari y como harias este proyecto en 1 sola tabla????
Pregunto porque por ejemplo 3 paises distintos ya expuestos:
Citar
Pais
- Departamento
- Provincia
- Distrito
Pais
-Region
-Provincia
-Comuna
-Ciudad
Pais
Provincia
Considera, como haces 1 sola tabla con 3 ejemplos de 3 paises distintos como los anteriores expuestos... hay campos que en otros pais no existen pero si existen en uno, entonces como se le hace aca??? porque si consideras incluirlos todos en la misma tabla.. van a ver muchos valores NULL integrados ahi esto sin considerar datos duplicados, recuerdate que hay nombres de ciudades similares aun siendo distintos paises (cordoba por ejemplo hay uno en Espana hay otro en Argentina)....Y si tu quieres actualizar por ejemplo cordoba... y das un UPDATE se van a actualizar ambos a la vez Argentina y Espana (y si hay mas cordoba en otro pais tambien)... y si quieres eliminar el pais de provincia cordoba se van a eliminar todos los paises con alguna region llamada cordoba?
la tabla seria Localidades:
Pais (Obligatorio)
Departamento (opcional)
Region (Opcional)
Provincia (Obligatorio)
Distrito (opcional)
Comuna (opcional)
Ciudad (Obligatorio) <- Este debe ser primary key
los valores opcionales pueden ser null, por ejemplo aqui mi localidad es concepcion chile:
Pais Chile
Departamento NULL
Region Region del bio-bio
Provincia Concepcion
Distrito NULL
Comuna Concepcion
Ciudad Concepcion
habran valores null y valores repetidos, pero lo de repetidos no importa ya que en una provincia pueden haber varias comunas o en un pais puede tener varias regiones o departamentos, no seria necesario validar si esta repetido o no. En cambio las ciudades si, asi que por esa razon la colocamos como primary key para que no se repita y ademas la ciudad es la localidad en si, por eso como clave identificadora queda bien
Esto parece Off-topic....
Porque tifa no es moderadora?
CitarPorque tifa no es moderadora?
Lo era, decidi renunciar a la posicion por cuestiones que no voy a comentar aqui. Pero, lo valioso es que puedo seguir respondiendo y cooperando en el area cuando alguien tenga alguna duda, no hay que moderar un subforo para ayudar ;)
CitarEn cambio las ciudades si, asi que por esa razon la colocamos como primary key para que no se repita y ademas la ciudad es la localidad en si, por eso como clave identificadora queda bien
Ok entonces, los paises distintos que tengan el mismo nombre de ciudades que pasara??? sino se pueden repetir digo :P
En esos casos yo en el nombre de la ciudad colcoaria ademas un identificador
por ejemplo
aqui cerca hay una ciudad llamada los angeles
y tambien esta los angeles de estados unidos
en ese caso yo colocaria, Los angeles CH y Los Angeles CA
seguir manteniendo una tabla seria super bueno para facilitar el uso que se le de
tambien seria el caso de colocar la ciudad y pais como primary key, y hay se puede repetir sin problemas siempre que sea de otro pais
saludos
Citaren ese caso yo colocaria, Los angeles CH y Los Angeles CA
Ok entonces... tu vas a memorizarte todos los autentificadores existentes en la tabla donde cada pais tenga una ciudad de nombre identico :huh: :huh: digamos que no que no te lo memorizas, pero para no afectar otros registros tienes que averiguar el identificador, entonces haces una consulta SQL previa para averiguar como se llama el identificador de Los Angeles para Chile por ejemplo :huh: no digo que no se pueda, se puede efectivamente, pero es mas trabajoso a nivel de consultas.
Citartambien seria el caso de colocar la ciudad y pais como primary key, y hay se puede repetir sin problemas siempre que sea de otro pais
Si le pasas el atributo Primary Key no se podran repetir, si fuese KEY o INDEX si pero Primary Key no, suponiendo que decides usar KEY o INDEX para que se repitan y continuen siendo indices, tendras que aplicar lo anterior lo del identificador y recordarte como se llama o previamente buscarlo para no eliminar o actualizar una cantidad de registros superior a la que consideras.. y si hablamos de lectura pasara lo mismo recordarte o previamente buscar el identificador para que no se muestren todos los paises con una Ciudad Los Angeles cuando a lo mejor se consulte el motor para ver la ciudad Los Angeles.
Porque se complican tanto?
Tabla Paises
Tabla Regiones
Tabla Ciudades
Y listo
Cita de: ^TiFa^ en 21 Marzo 2010, 17:18 PM
entonces haces una consulta SQL previa para averiguar como se llama el identificador de Los Angeles para Chile por ejemplo :huh: no digo que no se pueda, se puede efectivamente, pero es mas trabajoso a nivel de consultas.
exactamente, pero eso ya es problema de la capa siguiente xD
lo ideal seria que hayan unos tres tipos de la misma base de datos, ya que algunas seran mas utiles en unas ocasiones y otras en otras ;)
saludos
CitarPorque se complican tanto?
Disculpa Skeletron ;) la complicacion vino por querer cuestionar yo el modelo de estructura propuesto por Ari :D
Pero ya no le doy seguimiento al asunto, no quiero que cierren el hilo :P
Cita de: ^TiFa^ en 21 Marzo 2010, 17:36 PM
Pero ya no le doy seguimiento al asunto, no quiero que cierren el hilo :P
Pueda ser que no lo cierren, si no que lo muevan xD.
Este tema me parece interesante y de mucha utilidad ya que es imposible encontrar una base de datos decente sobre paises / estados / ciudades y pueblos con los idiomas hablados por cada pais. Proponga crear otra tabla con una relacion N:M con el PAIS de idiomas hablados por cada pais.
tabla N:M
Cod_Idioma
Cod_Pais
Porcentaje
tabla idioma
COD_IDIOMA
Nombre_Idioma
Cita de: Punisher.linux en 6 Abril 2010, 09:22 AM
Este tema me parece interesante y de mucha utilidad ya que es imposible encontrar una base de datos decente sobre paises / estados / ciudades y pueblos con los idiomas hablados por cada pais. Proponga crear otra tabla con una relacion N:M con el PAIS, de idiomas hablados por cada pais.
tabla N:M
Cod_Idioma
Cod_Pais
Porcentaje
tabla idioma
COD_IDIOMA
Nombre_Idioma
deberiamos poner un listado de todos los paises y poner al lado quien se encarga de pasar ese pais a la base de datos y esta claro que debemos primero definir la estructura y que datos va a tener, como Codigo postal y cosas asi. SI la gente se compromete podeis contar conmigo y podriamos compartirla por internet para que haya algo decente. Lo siento por hacer doble post.
También podemos partir de esta base de datos ofrecida por Mysql:
http://downloads.mysql.com/docs/world.sql.gz
que tal esta estructura ??
CREATE TABLE IDIOMAS (
COD_IDIOMA int(11),
NOMBRE char(20) NOT NULL default '',
OFICIAL CHAR(1) NOT NULL default 'N',
PRIMARY KEY (`COD_IDIOMA`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
CREATE TABLE CONTINENTES (
COD_CONTINENTE int(11),
NOMBRE char(20) NOT NULL default '',
POBLACION int(11) NOT NULL default '0',
PRIMARY KEY (`COD_CONTINENTE`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
CREATE TABLE PAISES (
COD_PAIS int(11),
COD_CONTINENTE int(11),
NOMBRE char(20) NOT NULL default '',
POBLACION int(11) NOT NULL default '0',
PRIMARY KEY (`COD_ESTADO`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
CREATE TABLE ESTADOS (
COD_ESTADO int(11),
COD_PAIS int(11),
NOMBRE char(20) NOT NULL default '',
POBLACION int(11) NOT NULL default '0',
PRIMARY KEY (`COD_ESTADO`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
CREATE TABLE CIUDADES (
COD_CIUDAD int(11),
COD_ESTADO int(11),
NOMBRE char(20) NOT NULL default '',
POBLACION int(11) NOT NULL default '0',
PRIMARY KEY (`COD_CIUDAD`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
CREATE TABLE IDIOMAS_HABLADOS_PAIS (
COD_IDIOMA int(11),
COD_PAIS int(11),
PORCENTAJE FLOAT(2,2) NOT NULL default '0.0',
PRIMARY KEY (`COD_IDIOMA`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Hola seria bueno tener esta DB asi que hago mi aporte di con esta base que me ha sido de utilidad hace tiempo:
Todas las provincias departamentos y localidades de Argentina.
Los datos están separados en tres tablas [Provincia] -> [Departamento] -> [Localidad]
Cantidad de registros:
Provincias: 23
Departamentos: 574
Localidades: 5439
descargar
http://www.mediafire.com/?hmbjwyjmdgx
fuente http://kerzek.blogspot.com/
saluddos!!
Hola a todos! :D
Acá les dejo unos scripts sql para MS-SQLServer 2008 Express, que generan las tablas:
- Pais
- PaisIdioma
- Ciudad
http://www.megaupload.com/?d=9G66BWJF (http://www.megaupload.com/?d=9G66BWJF)
Espero que les sirva! ;-)