Tablas recursivas
Tengo la siguiente duda en cuanto al diseño de base de datos para el registro de programa de actividades con 5 niveles, es decir actividades principales y subActividades, pensé en dividirlo en dos tablas
una llamada Actividades:
LngCodGrupo (Clave Primaria)
LngCodActividad (Clave Primaria)
DescripcionActividad
IdNivel
Padre (SI/NO)
GrupoPadre (FK, campo lngCodGrupo)
IdPadre (FK, lngCodActividad)
Agrego el campo grupo, porque las actividades se repiten según grupos ejemplo
gru- act-descripción-nivel -padre-grupopadre-idpadre
0 1 ACTIVIDAD PRI 1 SI - -
1 1 ACTIVIDAD1 1 NO 0 1
1 2 ACTIVIDAD2 2 NO 1 1
1 3 ACTIVIDAD3 3 NO 1 2
1 4 ACTIVIDAD4 4 NO 1 3
1 5 ACTIVIDAD5 5 NO 1 4
2 1 ACTIVIDAD1 1 NO 0 1
2 2 ACTIVIDAD2 2 NO 1 1
2 3 ACTIVIDAD3 3 NO 1 2
2 4 ACTIVIDAD4 4 NO 1 3
2 5 ACTIVIDAD5 5 NO 1 4
También una tabla llamada Programa relacionada con la tabla actividad donde almaceno la actividad y programación
lngCodIngActPrograma (Clave Primaria)(autonumérico)
LngCodActividad (Clave Primaria)
LngCodGrupo (Clave Primaria)
DtmFecInicioProgramada
DtmFecFinProgramada
LngPesoActividad
StrObservacion
El problema se presenta al almacenar la programación de una actividad, no encuentro la forma de conocer todos los padres de una actividad cuyo nivel es 4:
Ingreso - actividad - grupo - fecha inicio - fecha fin - peso - observaciones
1 4 1 26/01/2010 28/01/2010 2 -
2 3 2 26/01/2010 29/01/2010 5 -
De esta forma solo se que la actividad 4 del grupo 1 tiene una programación pero no cual es su actividad padre
Saludos,
y
una llamada Actividades:
LngCodGrupo (Clave Primaria)
LngCodActividad (Clave Primaria)
DescripcionActividad
IdNivel
Padre (SI/NO)
GrupoPadre (FK, campo lngCodGrupo)
IdPadre (FK, lngCodActividad)
Agrego el campo grupo, porque las actividades se repiten según grupos ejemplo
gru- act-descripción-nivel -padre-grupopadre-idpadre
0 1 ACTIVIDAD PRI 1 SI - -
1 1 ACTIVIDAD1 1 NO 0 1
1 2 ACTIVIDAD2 2 NO 1 1
1 3 ACTIVIDAD3 3 NO 1 2
1 4 ACTIVIDAD4 4 NO 1 3
1 5 ACTIVIDAD5 5 NO 1 4
2 1 ACTIVIDAD1 1 NO 0 1
2 2 ACTIVIDAD2 2 NO 1 1
2 3 ACTIVIDAD3 3 NO 1 2
2 4 ACTIVIDAD4 4 NO 1 3
2 5 ACTIVIDAD5 5 NO 1 4
También una tabla llamada Programa relacionada con la tabla actividad donde almaceno la actividad y programación
lngCodIngActPrograma (Clave Primaria)(autonumérico)
LngCodActividad (Clave Primaria)
LngCodGrupo (Clave Primaria)
DtmFecInicioProgramada
DtmFecFinProgramada
LngPesoActividad
StrObservacion
El problema se presenta al almacenar la programación de una actividad, no encuentro la forma de conocer todos los padres de una actividad cuyo nivel es 4:
Ingreso - actividad - grupo - fecha inicio - fecha fin - peso - observaciones
1 4 1 26/01/2010 28/01/2010 2 -
2 3 2 26/01/2010 29/01/2010 5 -
De esta forma solo se que la actividad 4 del grupo 1 tiene una programación pero no cual es su actividad padre
Saludos,
y
4 respuestas
Respuesta de luis45ccs
1
Respuesta de mrtool
1
Respuesta de marbet63
1
Respuesta de tnathos
1