Inicio > MySQL > blankcorrea > relacion de tablas

relacion de tablas

Experto:
Usuario: Anónimo Fecha: 27/06/2008
Valoración: (4,00 sobre 5) Categoría: MySQL
25/06/2008
Usuario
hola, tengo una duda en relacion a dos tablas, estoy utilizando los metodos de relacion uno a muchos y mucho a muchos... segun lo indicado lo estoy haciendo correctamente pero al realizar las consultas no me arroja la respuesta deseada, es decir. existe una relacion de procesos y subprocesos, un proceso puede tener varios subprocesos, pero un subproceso solo pertenece a un proceso, alli estableci la relacion uno a muchos de hecho cuando realizo la consulta para saber que subprocesos puede tener el proceso xxx la respuesta es correcta segun los datos que registre pero cuando deseo saber el subproceso xxx a que proceso pertenece no me muestra nada, entonces realice lo siguiente lo coloque como una relacion muchos a muchos y si recibo las dos respuestas de manera satisfactoria, mi pregunta es estara erronea la relacion y si es asi y tendria que cambiarlo nuevamente a la relacion uno a muchos como hago con la consulta donde no recibo respuestas? le agradeceria su ayuda ya que me es urgente recibir su respuesta gracias....
25/06/2008
deiyis, experto respondiendo en MySQL
Experto
Tomando en cuenta que proceso es tu tabla pricipal (hacia donde va la relacion de 1) y subproceso es la tabla secundaria (Hacia donde va la relacion de mucho)
Proceso 1------->n Subproceso
Lo correcto es utilizar una relación de uno a muchos. El conflicto que estas teniendo no es con la relación sino con la manera que esta haciendo la consulta.
 
Para consultar sobre que subprocesos tiene un proceso utilizas la siguiente query:
SQL>> SELECT subproceso.*
FROM proceso, subproceso
WHERE proceso.idproceso = subproceso.idproceso AND proceso.idproceso = 1
En esta consulta te muestra todos los subprocesos que tiene el proceso 1
y para ver que proceso tiene un subproceso seria así:
SQL>> SELECT proceso.*
FROM proceso, subproceso
WHERE proceso.idproceso = subproceso.idproceso AND subproceso.idsubproceso = 1
En esta consulta te muestra el procesos que tiene el subproceso 1
26/06/2008
Usuario
ok, gracias por la aclaracion sabiendo que lo correcto es la relacion  uno a muchos, aun asi estaria mal la relacion muchos a muchos?????? o sea influiria????? o no???
27/06/2008
deiyis, experto respondiendo en MySQL
Experto
bueno en realidad una relacion de muchos a muchos no existe, los motores de base de datos relacional no lo soportan. Es una forma abstracta de relacionar tablas que al normalizarlas al final desaparece esa relacion creandose una tabla intermedia o como se le conoce comunmente una tabla detalle.
por ejemplo: un cliente puede realizar varios pedidos y un pedido es realizado por un solo cliente. Fácil, relacion de uno a muchos. Ahora un pedido tiene varios productos y un producto puede ser pedido varias veces, es una relacion de muchos a muchos y no cumple la tercera forma normal, por lo que se crea la tabla de detalle de pedidos donde tiene el identificador del pedido y del producto, ademas todos los campos comunes, cantidad_pedida, etc.
27/06/2008
Usuario
Muy Bien. Me ha sido de gran utilidad
Más opciones
Enlaces patrocinados