Juan, El ejemplo que das es bueno, el tema está en que tu a través del modelo que tienes sabes la jerarquía de tus unidades (suponiendo en que no cambiará en el tiempo), en cambio con la implementación que explique, es a nivel de registro y lo más probable que después no sepas cuantas jerarquías tengas hacia arriba o hacia abajo por cada unidad, por lo tanto con un simple SQL seria un poco más complejo traer todas las unidades desde una dirección especifica, lo ideal para eso sería hacer un procedimiento almacenado o mejor aun la aplicación que estás haciendo, podrías agregar un método en tus clases con la programación recursiva que te busque los niveles de jerarquía que tienes desde una dirección, que es lo cual nosotros hemos realizado. Como observación a lo que comenta Guillermo es bastante valido lo que dice, el ideal es que agregues índices a tus tablas y comenzar a utilizar JOIN para ese tipo de modelo y consulta que tienes.
Patricio Cifuentes Ithal Ingeniero en Informática Unidad de Informática Fono : 02 - 334 73 69 www.siigsa.cl De: Guillermo Villanueva [mailto:guillermo...@gmail.com] Enviado el: miércoles, 03 de noviembre de 2010 11:52 Para: juanramirez CC: PostgreSQL; pcifuen...@siigsa.cl Asunto: Re: [pgsql-es-ayuda] OT: Tabla Pais, Departamento, Provincia y Distrito Juan, independientemente del modelo que tengas, opino que tu consulta usando subconsultas a nivel de la proyección de las columnas no es para nada optimizada. ¿Porque no utilizas inner join con unos buenos índices creados? Saludos ~~~~~~~~~~~~~~~~ Guillermo Villanueva El 3 de noviembre de 2010 11:47, juanramirez <juanrami...@cajazacate.com.sv> escribió: Patricio Cifuentes Ithal escribió: La receta es simple y te recomiendo tres tablas para hacerlo más genérico: - Bajo el ejemplo de los registros con una tabla padre puedes crear tantas clasificaciones existan con solo dos tablas y no N tablas dependiendo de cada división administrativa de cada país (punto a favor) - Con la tabla de jerarquía puedes realizar la misma jerarquía de cada división de cada país solo a nivel de registro y no a nivel de tablas (punto a favor) - Todo esto administrado en solo tres tablas, en el caso de que cada país vaya agregando mas unidades administrativas solo tendrás que registrarlas y definirles la jerarquía de quien es su padre o cuáles son sus hijos administrativos (punto a favor) - La jerarquía se administra a nivel de registros y modelo nunca cambia siempre son las mismas tres tablas (punto a favor). - Esto es iniciación a "MetaDiccionario" Tengo una pregunta para ésta idea. Yo tengo la implementación "común" en la distribución de mis zonas geográficas de manera "N tablas para cada división" tengo 5 tablas:Departamento, Jurisdicción, Ciudad/Cantones, Barrios/Colonias y Calles. Cuando hago un select a la tabla calles y le agrego el nombre del departamento, jurisdicción, ciudad y el barrio; se tarda unos 10 segundos. un select similar a este: select calle,nombre_calle ,(select nombre_departamento from departamentos where a.departamento=departamento) as nombre_departamento ,(select nombre_jurisdiccion from jurisdiccion where a.departamento=departamento and a.jurisdiccion=jurisdiccion) as nombre_jurisdiccion , igual ciudades, igual barrios from calles as a Pregunta: Tu que tienes implementado algo diferente, has llegado ha tener 5 divisiones y hacer un select parecido al que te digo, y obtienes mejor performance del que yo obtengo? -- Cordialmente, Juan Ramírez El Salvador - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripción: http://www.postgresql.org/mailpref/pgsql-es-ayuda -- Este mensaje ha sido analizado por <http://www.mailscanner.info/> MailScanner en busca de virus y otros contenidos peligrosos, y se considera que está limpio. -- Este mensaje ha sido analizado por MailScanner en busca de virus y otros contenidos peligrosos, y se considera que está limpio.