Foros del Web » Programando para Internet » PHP »

Duda con tabla mysql.. e insert con llave foranea

Estas en el tema de Duda con tabla mysql.. e insert con llave foranea en el foro de PHP en Foros del Web. Hola.. tengo una tabla de Usuarios-.-.- con los campos: Users: .id autoincrement .usuario .password .nombre .apellido Y tengo una tabla llamada: Cuestionarios: .Id .Id_Usuario .Pregunta ...
  #1 (permalink)  
Antiguo 14/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
Duda con tabla mysql.. e insert con llave foranea

Hola.. tengo una tabla de Usuarios-.-.- con los campos:
Users:
.id autoincrement
.usuario
.password
.nombre
.apellido

Y tengo una tabla llamada:
Cuestionarios:
.Id
.Id_Usuario
.Pregunta
.Respuesta

El asunto es el siguiente.. cada usuario tiene un cuestionario con preguntas de el mismo.. como de su perfil.. vaya.. y tambien tiene sus respuestas.
Entonces otro usuario tendra que contestar esas preguntas para ver q tanto lo conoce.
Me imagino mas o menos como hacer la comparacion entre respuestas...
Mi duda es..si el campo Id_Usuario de la tabla cuestionarios es llave foranea de id en la tabla Usuarios...... como hago para que sea el mismo id en la tabla cuestionarios..? osea... que todas las preguntas que correspondan al mismo usuario.. tengan el mismo id..
Hay que insertarselo manualmente?
Es que siempre he tenido esa duda... de cuando hay llaves foraneas.. como se inserta.. osea un mismo dato se inserta en varias tablas o q?
Ojala y me haya explicado..
Saludos
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #2 (permalink)  
Antiguo 14/09/2006, 10:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Las claves foraneas te ayudan a relacionar datos, en motores como MySQL e InnoDB puedes aprovechar u usar las claves foraneas para cambiar los datos, por decir si borras un usuario se borran todas las claves en las tablas foraneas que tenian ese idusuario en automatico.

Ahora respondiendo a tu pregunta, nescesitarias 3 tablas, la primera tu tabla usuarios, la segunda tu tabla preguntas de un usuario, y la tercera una tabla donde se almacenan las respuestas, se almacena el idOwner (id de usuario de quien son las preguntas), idResponser (id del usuario que responde), y la respuesta que eligio.
  #3 (permalink)  
Antiguo 14/09/2006, 11:00
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Gracias.. oye y ... si tengo la llave primaria que la referencia otra tabla..(foranea)
a la hora de hacer hacer el registro de un nuevo usuario en php... ese mismo id lo tengo que introducir en todas las tablas? o solo con que este referenciado por otras .. se introduce ? o como? me friega esa duda vieja.....
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #4 (permalink)  
Antiguo 14/09/2006, 11:05
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Si tu clave primaria no existia antes y se auto genero al insertar un nuevo usuario, entonces hay que insertarlo tmb en las otras tablas que nescesites, eso ya es parte de tu logica y la base de datos no tiene porque asumir que lo quieres insertar en otras tablas.
  #5 (permalink)  
Antiguo 14/09/2006, 11:14
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Ok.. ya me aclaraste mas esa duda..q al momento de obtener los datos hay que meterlo en otras tablas.. por ejemplo.. se registra un nuevo usuario.. se autogenera el id en la tabla users... luego tendria que obtener ese id por medio de un select... e introducirlo a la tabla cuestionarios para las preguntas y tambien introducirlo a la tabla respuestas-- es asi?
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #6 (permalink)  
Antiguo 14/09/2006, 11:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Asi es, y todo eso debes de manejarlo en tu capa de logica para que sea mas facil rastrear el problema.
  #7 (permalink)  
Antiguo 14/09/2006, 11:20
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Ok..- muchas gracias .. y mas por la rapidez !
Saludos
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 02:47.