Foros del Web » Programando para Internet » PHP »

While dificultoso o mal diseño de BD?

Estas en el tema de While dificultoso o mal diseño de BD? en el foro de PHP en Foros del Web. Hola...Como ya en otro post comente que necesito almacenar en la BD un cuestionario personal de un usuario... el usuario mismo hará las preguntas y ...
  #1 (permalink)  
Antiguo 18/09/2006, 07:34
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
While dificultoso o mal diseño de BD?

Hola...Como ya en otro post comente que necesito almacenar en la BD un cuestionario personal de un usuario... el usuario mismo hará las preguntas y pondrá 3 respuestas posibles... dentro de la cual 1 es la correcta..
Entonces almaceno esto en la tabla Preguntas:
Preguntas:
*id autonumerico
*id_usuario//llave foranea a la tabla usuarios.
*preguntas
*respuestas_correcta

Ahora .. despues que el contacto o amigo del que hizo el cuestionario.. conteste su cuestionario para ver que tanto lo conoce.... bueno, primeramente debo de llenar un select con las 3 respuestas y compararlas con la correcta, para ir sumando puntos...mi duda es donde colocar las respuestas que no son las correctas... si las almaceno en la misma tabla.. como voy a saber a que pregunta corresponden?.. o igual manera si las pongo en otra no se como almacenar el mismo id autonumerico de la tabla preguntas en la otra tabla.. para asi saber que la respuestas tienen relacion con una pregunta.
Lo que se me ocurre es almacenar las respuestas incorrectas en un campo aparte.. pero en la misma tabla... y separarlas con un caracter especial...
y ya entonces podria hacer un while para llenar el select.. .. por que si las tengo separadas.. no se me ocurre como hacer el "bucle".....
Si alguien me puede ayudar porfavor..
Saludos.
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #2 (permalink)  
Antiguo 18/09/2006, 09:13
Avatar de Hollman  
Fecha de Ingreso: enero-2003
Ubicación: Bogotá - Colombia
Mensajes: 202
Antigüedad: 21 años, 2 meses
Puntos: 1
Hola....

En tablas aparte puedes colocar todas las preguntas y en otra todas las respuestas...para saber cual es el id autonumérico que se genera al insertar un registro (p.e. al insertar una pregunta y utilizarlos para insertarlo en la tabla respuestas).. pues depende de la BD que manejes, por ejemplo:

Mysql ==> mysql_insert_id();
PostgreSQL ==> pg_last_oid();

Que BD utilizas?


Exitos...
  #3 (permalink)  
Antiguo 18/09/2006, 09:21
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Olvide ese detalle.. uso MYSQL
En que me beneficia tener las preguntas y respuestas en tablas diferentes... aparte creo que en la tabla preguntas.. es mejor tener la respuesta correcta... y en otra ya tener las incorrectas..no crees?
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #4 (permalink)  
Antiguo 18/09/2006, 09:31
Avatar de Hollman  
Fecha de Ingreso: enero-2003
Ubicación: Bogotá - Colombia
Mensajes: 202
Antigüedad: 21 años, 2 meses
Puntos: 1
Bueno eso es diseño de BD y cada uno lo realiza a su acomodo. yo pondría una tablas así:

PREGUNTAS.
Id del registro (osea de la pregunta).
Id del usuario (Quien la creo).
Texto de la pregunta.
fecha de creacion...etc

RESPUESTAS.
Id del registro (osea de la respuesta).
Id de la pregunta(Generado en la anterior).
Texto de la respuesta.
Identificador de la respuesta buena (Booleano).

De esta manera al crear el combo de respuestas ya sabes cual es la correcta y a que pregunta pretenece...

Éxitos...
  #5 (permalink)  
Antiguo 18/09/2006, 09:40
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
JAja no cabe duda que aun me falta mucho en el diseño de BD -_-
Muy buena opcion la tuya Hollman.. creo que usaré esa .. gracias
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #6 (permalink)  
Antiguo 18/09/2006, 09:44
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Ya que andamos por aca.. sabes como poner que un campo boolean tenga por default 0... o es lo que tiene por default?
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #7 (permalink)  
Antiguo 18/09/2006, 10:03
Avatar de Hollman  
Fecha de Ingreso: enero-2003
Ubicación: Bogotá - Colombia
Mensajes: 202
Antigüedad: 21 años, 2 meses
Puntos: 1
La verdad no sé. Trabajo poco con Mysql.

Éxitos..
  #8 (permalink)  
Antiguo 18/09/2006, 10:12
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Mmm ya me atoré en algo... cuando el usuario va a guardar su cuestionario...y escribe las 3 respuestas...
Como puedo hacer para insertar en la tabla preguntas las preguntas valgaa la redundancia... y en la tabla respuestas... insertar las 3 respuestas, pero cada una con el mismo id .. que tiene la pregunta en la tabla preguntas ..? para asi poder relacionarlas y hacer el query.
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #9 (permalink)  
Antiguo 18/09/2006, 10:17
Avatar de Hollman  
Fecha de Ingreso: enero-2003
Ubicación: Bogotá - Colombia
Mensajes: 202
Antigüedad: 21 años, 2 meses
Puntos: 1
Pues...

1. Guarda la pregunta en su respectiva tabla.
2. Guarda el ID que 'bota' la tabla de preguntas al insertar el registro. Usa mysql_insert_id().
3. Mediante un for o while recorre donde tienes las posibles respuestas e insertalas en su respectiva tabla con el ID de punto 2.

Éxitos....
  #10 (permalink)  
Antiguo 18/09/2006, 10:30
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Mira yo tengo esto:
Código PHP:
$preguntas=Array(//las  preguntas..textbox traidos por POST)
$respuestas=Array(//las respuestas ..textbox traidos  por POST)
foreach ($preguntas as $key =>$val){
  
$smysql_query("insert into preguntas (id,preguntas) values ('$el','$val')");
  
$elid=mysql_insert_id();


Entonces en base al id que regresa mysql_insert_id... tendria que hacer 3 querys para insertar las respuestas por cada pregunta...!!!
No es asi?
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.

Última edición por B**; 18/09/2006 a las 10:37
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 22:45.