Re: [pgsql-es-ayuda] Fw:[pgsql-es-ayuda]Consulta sobre cómo armar estructura detablas

From: Damián Culotta <dculotta(at)fibertel(dot)com(dot)ar>
To: Sebastián Villalba <sebastian(at)fcm(dot)unc(dot)edu(dot)ar>, "Ayuda PostgreSql" <pgsql-es-ayuda(at)postgresql(dot)org>, <orc(at)bvconline(dot)com(dot)ar>
Subject: Re: [pgsql-es-ayuda] Fw:[pgsql-es-ayuda]Consulta sobre cómo armar estructura detablas
Date: 2006-02-08 02:57:42
Message-ID: 00e501c62c5b$6e2fa4a0$6501a8c0@workstation
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Oscar:

Voy a revisar lo que me dijiste.
Sólo te hago una aclaración, en la mayoría de las provincias, los
deparatamentos están jerárquicamente por debajo de las provincias y por
encima de los municipios. De hecho, varios tienen capital de departamento
(lo cual no es lo mismo que cabecera de partido).
Igualmente, gracias por el dato, voy a chusmearlo.
En cuanto a la cantidad, espero que sean tan solo 23.000. Yo recién cargué
las provincias y los departamentos de algunas provincias y ya voy 1.000
registros. (Esto sin cargar municipios ni localidades).

Sebastián:

Con nodos trato de explicar lo de las relaciones. Nodo 4 depende del 3, el 3
del 2 y así sucesivamente.

Amplío sobre los casos.
En el caso 3 no hay departamentos, ya que, por ejemplo, la provincia de
Buenos Aires no se divide en departamentos, sino directamente en municipios.
En el caso 4 hace referencia a la Ciudad Autónoma de Buenos Aires. Esta
debiera cargarse como localidad, que es lo que es, pero tiene jerarquía de
provincia.

Sobre lo que me decís de la primer aopción de creación de tablas (me refiero
a la de armar una para provincias, departamentos, municipios, etc), el
problema que encuentro es el siguiente:
Si suponeos que la jerarquía se da siempre en:
1. Provincia
2. Departamento
3. Municipio
4. Localidad

Y que, por ejemplo, en departamento el nodo supeior debe ser un id de
provincia, en municipio de departamento y en localidad de municipio; tengo
el problema que en los casos en que no hay departamentos (caso prov. de
Buenos Aires), no peudo relacionar las localidades con ningun departamento,
por lo caul falla (salvo que no usara las claves foráneas).

Sobre lo de tener distintos datos en una tabla, no se si los consideraría
distintos datos, ya que, en siu son nombres de lugares.
Te cuento que armé ahora. La tabla tiene:

id, nodo supeior (es el id), tipo (si es provincia, departamto, etc),
descripcion (que sería el nombre de cada uno. ej: Buenos Aires, Catamarca,
La Plata, etc)

De esta manera, logro armar (en una tabla en este caso) la carga de todos
los datos y mantener la inetgridad de las relaciones.
Claro, esto me genera tener que divertirme con recursivdad (cosa que ya
logré resolver para las lecturas de esto probando con Php para empezar).

Espero haber explicado mejor dónde creo que falla el modelo de las distintas
tablas para cada tipo.
Si lo que digo sobre esta falla es correcto (cosa que al probarlo me pareció
que si), ¿queda algún otro modelo aparte del recursivo?.

Pregunta bonus: ¿con pl/sql se pueden armar funciones recursivas?

Muchas gracias

----- Original Message -----
From: "Sebastián Villalba" <sebastian(at)fcm(dot)unc(dot)edu(dot)ar>
To: "Damián Culotta " <dculotta(at)fibertel(dot)com(dot)ar>; "Ayuda PostgreSql"
<pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Tuesday, February 07, 2006 11:17 PM
Subject: Re: [pgsql-es-ayuda] Fw:[pgsql-es-ayuda]Consulta sobre cómo armar
estructura detablas

> Hola Damián...
>
> On Tue, 7 Feb 2006 22:14:02 -0300, Damián Culotta wrote
> [...]
>> 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
>
> Por qué aquí no figuran "Departamentos"?. Toda provincia está compuesta
> por
> departamentos (o me equivoco? :).
>
>> Caso 4 (es el del distrito federal, que tiene la jerarquía de una
>> provincia)
>>
>> Nodo 1: localidad
>
> Esto último no lo entiendo.
>
>> 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.
>
> No estoy seguro a qué le llamas "Nodos". No obstante, yo creo que la mejor
> opción es tener en diferentes tablas y llaves foráneas. No sé a qué te
> referís
> con que no vas "a poder armar las relaciones según los distintos casos".
> Si
> vos tenés una jerarquía de datos, cada tabla vá a tener llaves foráneas
> hacia
> la provincia (o lo que corresponda) que la contenga.
>
>> 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.
>
> Glup!. Te pido disculpas, pero me volví a perder ;). No obstante, tener
> distintos "datos" en una misma tabla no me parece buena idea. Si a eso le
> sumamos la complicación extra que encontraste con respecto a la
> recursividad
> (que es lo que no entiendo bien, pero seguramente vos si), creo que puede
> ser
> suficiente motivo, en principio, para analizar una opción diferente. Yo me
> quedaría con la primera que propusiste. Un gran saludo a todos...
> -
> -------------------------------------------
> Sebastián Villalba
> sebastian(at)fcm(dot)unc(dot)edu(dot)ar
> -------------------------------------------
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 4: No hagas 'kill -9' a postmaster
>
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2006-02-08 03:06:30 Re: Ayuda urgente con transacciones
Previous Message Julio Rivero 2006-02-08 02:19:43 Re: Ayuda urgente con transacciones