RE: OT: Tabla Pais, Departamento, Provincia y Distrito

From: "Patricio Cifuentes Ithal" <pcifuentes(at)siigsa(dot)cl>
To: "'Guillermo Villanueva'" <guillermovil(at)gmail(dot)com>, "'juanramirez'" <juanramirez(at)cajazacate(dot)com(dot)sv>
Cc: "'PostgreSQL'" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: OT: Tabla Pais, Departamento, Provincia y Distrito
Date: 2010-11-03 15:24:40
Message-ID: 001f01cb7b6b$42817a90$c7846fb0$@cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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:guillermovil(at)gmail(dot)com]
Enviado el: miércoles, 03 de noviembre de 2010 11:52
Para: juanramirez
CC: PostgreSQL; pcifuentes(at)siigsa(dot)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 <juanramirez(at)cajazacate(dot)com(dot)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(at)postgresql(dot)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.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2010-11-03 16:18:05 RE: OT: Tabla Pais, Departamento, Provincia y Distrito
Previous Message Carlos Joaniquet 2010-11-03 14:55:19 Re: Nuevo libro sobre rendimiento en PostgreSQL