Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Campos indices dependientes entre si

Estas en el tema de Campos indices dependientes entre si en el foro de Mysql en Foros del Web. Hola gente de foros del web, les pido si alguien puede ayudarme, tengo el siguiente problema, Tengo 4 tablas, encuesta, items, opciones y encuesta realizada, ...
  #1 (permalink)  
Antiguo 25/09/2012, 21:27
 
Fecha de Ingreso: septiembre-2012
Mensajes: 1
Antigüedad: 12 años, 2 meses
Puntos: 0
Exclamación Campos indices dependientes entre si

Hola gente de foros del web, les pido si alguien puede ayudarme, tengo el siguiente problema, Tengo 4 tablas, encuesta, items, opciones y encuesta realizada, en las 3 primeras se guardan datos de una encuesta para que despues alguien puede realizarla y se guarden que opciones selecciono.
El problema es el siguiente los tres indices:
ID_encuesta;
ID_item;
ID_opcion;
son autoincrementables, pero quiero que reinicien despues de que el 1º indice cambie, aca debajo les dejo un ejemplo de como funciona

ID_encuesta // ID_item // ID_Opcion
1 1 1
1 2 2
1 3 3
2 4 4
2 5 5
2 6 6
Asi es como esta actualmente, como pueden observar, los ID_item e ID_Opcion dependen de el ID_encuesta pero cuando ID_encuesta cambia al indice numero 2 los ID_item y el ID_opcion siguen contando, cuando en realidad deberian volver a 1 cada 1

Algo asi:

ID_encuesta // ID_item // ID_Opcion
1 1 1
1 2 2
1 3 3
2 1 1
2 2 2
2 3 3
El problema es que no hacer para que esos indices hagan eso, ni tampoco se como buscarlo, osea busque como "Indices dependientes" o " Indices que se resetean en condicion" pero nada aparecio, espero que sea lo suficientemente claro y me puedan explicar como hacerlo, ya sea por php, o definiendolo en la base de datos, la cual por cierto es mysql con innodb y el servidor que uso el el wamp.

Me despido hasta que me contesten.
  #2 (permalink)  
Antiguo 26/09/2012, 06:06
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Campos indices dependientes entre si

De entrada eso no son indices sino identificadores... con ese cambio y agregando auto incremental a tus consultas quizas habrias llegado a la conclusión que lo que intentas no es posible....

Pasanos la estructura de esas tablas porque diria que debes tener algun error de diseño.

1.- No puede haber mas de un autoincremental por tabla.

El valor de el siguiente autoincremental és unico para una tabla luego no puede mantener mas de uno.

2.- Un identificador debe ser único, luego no puedes tener dos 1....


Posible diseño:

encuesta
ID_encuesta PK autoinc
nombre
....

items
ID_item PK autoinc
ID_encuesta FK integer (no es auto inc)
NumeradorIt integer
Item
....

opciones
ID_opcion PK autoinc
ID_item FK integer (no es auto inc)
NumeradorOp integer
Opcion
...

cuestionarios
ID_cuestionario PK autoinc
ID_Enquesta FK
...identificación o no de quien lo ha rellenado...
... otros p.e. ID_Encuestador.....

encuestaRealizada
ID_Respuesta PK autoinc
ID_cuestionario FK
ID_Item FK
ID_opcion FK


(ID_cuestionario+ID_Item+ID_opcion serian una clave alternativa, luego ID_Respuesta no es estrictamente necesario)

Asi creo que funcionaria.

ID_cuestionario es necesario para unir todas las respuestas de un usuario sea identificado o anonimo.

NumeradorIt y NumeradorOp son los campos que deberias usar para guardar el numerador correlativo que quieres, pero debes calcularlo antes de hacer el insert, se puede automatizar, pero no hay una forma nativa de hacerlo. Al no ser PK tienes libertad para repetir numeros.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 26/09/2012 a las 06:17

Etiquetas: campos, dependientes, indices, php, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:22.