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"
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 |