Ver Mensaje Individual
  #6 (permalink)  
Antiguo 19/02/2013, 04:23
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Consulta mysql controlando un campo y generando otro

Cita:
lo que me dices seguro en el manual de mysql lo encuentro.
No. Los manuales de los diferentes DBMS asumen que el lector conoce los fundamentos de bases de datos.
Por otro lado, estás poniendo el carro delante del caballo: Si tienes que migrar los datos de una base a otra, deberías aprovechar para hacerlo hacia una base mínimamente bien diseñada, o de lo contrario lo único que lograrás será tener problemas a corto plazo.

...y no es tan difícil. Solamente requiere un poquito de esfuerzo.

La idea sería simplemente algo aproximadamente así

Código MySQL:
Ver original
  1. CREATE TABLE Pregunta(
  2. pregunta_id INT UNSIGNED PRIMARY KEY,
  3. pregunta VARCHAR(300)
  4. );
  5. CREATE TABLE Respuesta(
  6. pregunta_id INT UNSIGNED,
  7. respuesta_subId INT UNSIGNED,
  8. respuesta VARCHAR(300),
  9. correcta BOOLEAN,
  10. PRIMARY KEY(pregunta_id, respuesta_subId));

Para poder llenar la primera tabla sería mas o menos:

Código MySQL:
Ver original
  1. INSERT INTO pregunta
  2. SELECT id pregunta_id, pregunta
  3. FROM Preguntas;

Y para llenar las respuestas algo como:
Código MySQL:
Ver original
  1. INSERT INTO respuesta
  2. SELECT pregunta_id, respuesta_subId, respuesta, correcta
  3.     (SELECT pregunta_id, 1 respuesta_subId, respuesta1, (respuesta_correcta = 1) correcta
  4.     FROM Preguntas
  5.     UNION
  6.     SELECT pregunta_id, 2 respuesta_subId, respuesta2, (respuesta_correcta = 2) correcta
  7.     FROM Preguntas
  8.     UNION
  9.     SELECT pregunta_id, 3 respuesta_subId, respuesta3, (respuesta_correcta = 3) correcta
  10.     FROM Preguntas
  11.     UNION
  12.     SELECT pregunta_id, 4 respuesta_subId, respuesta4, (respuesta_correcta = 4) correcta
  13.     FROM Preguntas
  14.     ORDER BY 1, 2
  15.     ) t1
  16. ORDER BY pregunta_id, respuesta_subId;

Usando este esquema de pregunta/respuestas, una pregunta dada puede tener N respuestas posibles, y además puede hacerse que la misma pregunta tenga una, muchas o ninguna respuesta correcta.
Es decir, es una forma flexible de crear cuestionarios.

Nota: Falta agregar la FK en Respuesta apuntando a la PK de Pregunta.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 19/02/2013 a las 09:08