Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Crear tablas gerarquicas :-) (https://www.clubdelphi.com/foros/showthread.php?t=15020)

IVAND 07-10-2004 17:01:31

Crear tablas gerarquicas :-)
 
Hola a todos

Mi gran inquietud pasa desde la estructura hasta la forma del query , pues bien , veran tengo un pais , el pais tiene ciudades, las ciudades provincias las provincias cantones los cantones recintos y asi pueden ser sucesivamente

Como puedo hacer para que cuando se me seleccione el pais automaticamente se filtre solo las ciudades, pueblos etc que pertenescan a ese pais (si selecciono la ciudad se filtre los cantones,recintos ect que pertenescan a esa ciudad :-))

Por su gran ayuda quedo muy agradecido


Nota : me parece que el titulo esta bien y si no es asi por favor me corrigen

:D

tcp_ip_es 07-10-2004 17:21:36

el título sería: Crear tablas jerárquicas pero se entiende :D

En cuanto a lo que planteas es un claro maestro detalle. Tienes que montarte las tablas con una relación maestro detalle.....

en las carpetas de las demos de tu delphi encontrarás algún ejemplo de como montarte un maestro-detalle entre dos tablas....

Saludos, Tony ;)

IVAND 07-10-2004 21:19:39

Gracias Tony por tu respuesta, pero creo que por ahi no va la cosa, pues esto es como un arbol (creo que es exactamente asi pues tiene un nodo padre y hijos y hijos de hijos etc )

Ejemplo

Ecuador -- Nodo padre
- Manabi
- Portoviejo
- Manta


Etc.


Alguien mas que me de una luz

tcp_ip_es 08-10-2004 09:45:10

Yo sigo creyendo que es asi :D me explico:

Ejemplo, tienes tres tablas: País, ciudad, provincia

Tabla Pais:
Id_Pais
Nombre_Pais

Tabla Ciudad:
Id_Ciudad
Id_Pais
Nombre_Ciudad

Tabla Provincia
Id_Provincia
Id_Ciudad
Nombre_Provincia

Relaciones:
Tabla Pais (1 a muchos) con tabla Ciudad mediante index Id_Pais
Tabla Ciudad (1 a muchos) con tabla Provincia mediante index Id_Ciudad



Asi es como lo veo yo, pero vamos si tu ves otra forma :D

Saludos, Tony

lunatiko 17-10-2004 21:16:10

Yo lo haría así
 
En la tabla: un campo id (clave primaria) y otro idpadre (clave ajena que apunte al id. Se supone que en los nodos superiores de la jeraquia el idpadre es null)

Con una select puedes sacar los campos hijo del padre actual:
SELECT *
FROM TABLA
WHERE IDPADRE = padre_actual;

Esta select la tendrias que iejecutar en una función recursiva e ir guardandote los datos en una estructura tipo arbol.

marcoszorrilla 17-10-2004 21:43:47

Si las tablas tienen relación maestro detalle, al seleccionar un pais, sin hacer nada solamente estarán disponibles sus Provincias, al seleccionar una Provincia aparecerán sus ciudades....

Hasta se podrían colocar 3 ó 4 rejillas y automáticamente mostrarían lo que corresponda según lo elegido, por defecto aparecería la primera provincia y la primera ciudad, hasta que el usuario seleccione otra.

Lo mismo puede hacerse con consultas como te han indicado, e incluso con filtros, el problema final será la cantidad de datos que van a tener las tablas y si estos van a viajar por la red.

Si quieres lograr el efecto arbol por ejemplo cargándolos en un Treeview, también te han dado la respuesta.

Un Saludo.


La franja horaria es GMT +2. Ahora son las 23:43:39.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi