![]() |
Vincular una fila de una tabla con una o mas filas de otra Hola! A ver si logró explicarme correctamente para que me den luz sobre este problema. Tengo dos tablas en mi BD 8MySql. Una llamada Obras y otra llamada Personas. en Obras está Título y otros campos que no sean nombres propios. En Personas están todas las personas (dirctores, autores, reparto, iluminacion) que forman parte de una obra especifica. También en Personas hay un campo llamado 'id_obra' que identifica en que obra han participado y otro que es 'profesion' para saber dónde colocar el dato. A grandes ragos la tabla Nombres es así: ID (aut_increm) - id_obra - Nombre - Profesión Y al mostrar la ficha de la obra, hago el query asi: Código PHP: Hay ocasiones en que un mismo Nombre participa en dos obras, por ejemplo, dos obras del mismo dramaturgo. En ese caso, si se introduce, por ejemplo, Juan Perez de profesion dramaturgo, y ya existe, no vuelvo a insertar el registro en la tabla (esto porque cada persona va a tener su perfil). Por lo que la pregunta es... ¿Cómo hacer para mostrar en una Obra (digamos la id=44) al dramaturgo que está en la 44 pero tambien en la 62? Es decir, el campo ID_Obra debería tener 44, 62 pero entonces mi query ya no funcionaría... Agradezco mucho sus sugerenciias :), también si se les ocurre una manera de reestructurar la tabla para que funcione, no hay ningun problema. Samuel. |
Respuesta: Vincular una fila de una tabla con una o mas filas de otra Hola, que tal. En el diseño de bases de datos dice que cuando en tu diagrama Entidad Relacion dos entidades van de muchos a muchos tienes que crear una tercer entidad que se encarge de relacionar ambas. Es decir debes de crear otra tabla nadamas para poner las relaciones, con esto ya podras hacer una query involucrando las 3 tablas. select * from obras, personas, relacion where persona.id = relacion.persona and relacion.obra = obra.id espero me haya dado a entender |
Respuesta: Vincular una fila de una tabla con una o mas filas de otra Creoq ue necesitas una tabla intermedia. Creo que tienes una relacion de muchos a muchos y la solución es con una tabla que una por ejemplo el id de la persona con el id de la obra. Saludos EDITADO: Choque de frente compañero :borracho: |
Respuesta: Vincular una fila de una tabla con una o mas filas de otra Muchas gracias a ambos. Nunca he hecho algo así.... esa tercera tabla que una Personas y Obras, cómo sería? Y cómo y que datos le insertaria a esa tabla? Muchas gracias por su ayuda Samuel. |
Respuesta: Vincular una fila de una tabla con una o mas filas de otra Hi ! Seria una tabla: "obra_persona". Y almacenaria los indices de cada una de esas tablas: - id_obra - id_persona Luego al hacer una consulta realizas un INNER JOIN Para levantar los resultados pertinentes. Espero te sea util! -ByE- |
Respuesta: Vincular una fila de una tabla con una o mas filas de otra Hola, Proguri. Crreo que ya voy entendiendo. Entonces la tabla obra_persona se vería mas o menos así? id_obra - id_persona 44 25 66 25 Con eso quiero decir que la persona 25 participo en la 66 y en la 44... y ya luego hago el SELECT como tu dices... Espero que salga bien, gracias por la ayuda |
Respuesta: Vincular una fila de una tabla con una o mas filas de otra Hi ! Exacto, eso deberia ser más que suficiente y es el metodo más depurado de hacerlo ya que es el modelo entidad relación, cuando muchas entidades de una tabla se pueden relacionar con 1 o más de otra tabla (N a N) se debe crear una tabla intermedia que guarde los datos de los indices de las otras 2. Facil y rapido (?) jeje Suerte con el proyecto :) -ByE- |
Respuesta: Vincular una fila de una tabla con una o mas filas de otra Hola de nuevo! Solucioné el problema (yeii!) pero ahora ha aparecido otro :(. Siento que todo viene desd el diseño de la BD, como al final lo que me pidieron no tiene nada que ver con lo que me habían planteado en el principio, pues es como ir corrigiendo errores sobre la marcha. en fin, a ver si me pueden ayudar con esto. Ya tengo los datos de relación en obras_personas. De manera que si la persona no existe, la agrego y la muestro en su ficha. Si existe, no la añado, siifica que ya está en otra obra y la muestro ahi también. Ahora, en la tabla "personas" hay un campo llamado profesión. Ahi pueden ser autores, directores, escegrafos, etc. Esto me sirve para saber dónde colocar el nombre. El problema es el siguiente: Hay veces que una misma persona es dos cosas. Por ejemplo, director y dramaturgo. Entonces ahi se me complica todo porque yo hago el query asi: Código PHP: Yo había pensando hacer algo asi, no se si funcionaría: Al momento de añadir la ficha, si el nombre YA existe, tomar el registro y actualizar el campo "profesion", por ejemplo: Director Dramaturgo. Cuando muestro la ficha hacer el Query usando, por ejemplo: WHERE profesion LIKE '%director%'" Funcionaría de esa manera? Alguna otra idea, además de rehacer la base de datos? :'( |
| La zona horaria es GMT -6. Ahora son las 11:46. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.