Re: Tablas para ubicación geográfica

From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: Jorge Pérez <jlperez(at)epm(dot)net(dot)co>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Tablas para ubicación geográfica
Date: 2005-01-24 00:17:51
Message-ID: 20050124001751.GM19315@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Sun, Jan 23, 2005 at 11:26:04AM -0500, Jorge Pérez wrote:
> Tengo el siguiente problema que no he podido resolver; necesito utilizar
> tres tablas en mi base de datos Países, Departamentos, Municipios. Las
> siguientes son las estructuras que creo debería utilizar:
>
> - Paises: Codigo Char(2), Nombre Char(35) -Para los códigos de país
> estoy utilizando los códigos ISO (CO-Colombia, etc.)
> - Departamentos: Pais Char(2), Codigo Char(2), Nombre Char(35)
> - Municipios: Pais Char(2), Departamento Char(2), Codigo Char(5), Nombre
> Char(35)

FWIW, usar char(2) siempre usara 6 bytes, y las comparaciones (para
busquedas de llave primaria, etc) toman mucho mas tiempo y CPU que usar
un tipo INTEGER, que ademas de usar 4 bytes se mapean a int32 nativos de
la plataforma. Asi que por rendimiento, yo les pondria una llave
primaria INTEGER.

2. usar tipos char(35) no tiene mucho sentido porque el llenado con
blancos para satisfacer los 35 chars ocupa espacio (y el necesario I/O)
innecesariamente; ademas el uso de operadores con char(n) siempre
sorprende a los incautos (prueba por ej. la concatenacion). Mejor usar
VARCHAR(35), y dado que en realidad la restriccion de tamaño es
arbitraria, simplemente TEXT.

3. en mi pais no se usa "departamentos" y "municipios" sino "regiones" y
"comunas". No se si eso afecte tu modelo pero puede ser importante de
tener en cuenta :-) (Adicionalmente hay un nivel intermedio,
"provincia", que no se suele tomar mucho en cuenta). Pero por ej. el
sistema de correos usa solamente "comuna", el resto no importa.

--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
"Puedes vivir solo una vez, pero si lo haces bien, una vez es suficiente"

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2005-01-24 01:48:33 Re: Conectar Cliente A PostgreSQL 8 en Windows
Previous Message Nicolás Mendoza Hernández 2005-01-24 00:16:58 Conectar Cliente A PostgreSQL 8 en Windows