Consulta sobre cómo armar estructura de tablas

Lists: pgsql-es-ayuda
From: Damián Culotta <dculotta(at)fibertel(dot)com(dot)ar>
To: "Ayuda PostgreSql" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Consulta sobre cómo armar estructura de tablas
Date: 2006-02-04 23:48:56
Message-ID: 00d901c629e5$90546f20$6501a8c0@workstation
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Buenas tardes lista.
Tengo una duda sobre cómo armar una estructura de tablas.
Estoy queriendo armar en la base, la lista de provincias, departamentos, municipios y localidades de Argentina.
El problema surge en que no todas las provincias tienen la misma división administrativa. Ejemplifico los posibles casos de jerarquía:

Caso 1

Nodo 1: provincia
Nodo 2: departamento
Nodo 3: municipio
Nodo 4: localidad

Caso 2

Nodo 1: provincia
Nodo 2: departamento
Nodo 3: localidad

Caso 3

Nodo 1: provincia
Nodo 2: municipio
Nodo 3: localidad

Caso 4 (es el del distrito federal, que tiene la jerarquía de una provincia)

Nodo 1: localidad

Ahora bien, se me había ocurrido armar una tabla que contenga las provincias, una con los departamentos, otra con los municipios y la última con las localidades.
El problema sería que si pongo restricciones de claves foráneas entre un nivel y el otro, no voy a poder armar las relaciones según los distintos casos.

También pensé en una única tabla que maneje todo, es decir, que contenga los campos (por ejemplo):

id, nodosuperior, nombre;

De esta manera, en una unica tabla puedo cargar todos, y según el nodosuperior (que sería un id que viene de otra tabla que contiene, justamente, los distintos nodos, armaría las relaciones).
En este caso, no llego a cerrar la idea para poder hacer las lecturas correctas ya que, si mal no entiendo, entro en un caso de recursividad y hasta el momento no llegué a resolver eso.

¿Alguien tiene alguna idea o tipo sobre cómo manejar estos casos?.
Desde ya, muchas gracias por cualquier ayuda que puedan pasar.


From: angel Iracheta <angel(dot)iracheta(at)gmail(dot)com>
To: Damián Culotta <dculotta(at)fibertel(dot)com(dot)ar>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Consulta sobre cómo armar estructura de tablas
Date: 2006-02-08 14:52:37
Message-ID: 62b484730602080652x322f9b41s@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Hola,

Puedo estar equivocado pero creo que te puede servir la característica de
"herencia (inheritance)", sería conveniente que leyeras sobre este tema:

http://www.postgresql.org/docs/8.1/interactive/ddl-inherit.html

Buen artículo de Varlena sobre el tema:

http://www.varlena.com/varlena/GeneralBits/98.php

Saludos!!!