Relación de tablas

Tengo una duda en relación a dos tablas, estoy utilizando los métodos de relación uno a muchos y mucho a muchos... Según lo indicado lo estoy haciendo correctamente pero al realizar las consultas no me arroja la respuesta deseada, es decir. Existe una relación de procesos y subprocesos, un proceso puede tener varios subprocesos, pero un subproceso solo pertenece a un proceso, allí establecí la relación uno a muchos de hecho cuando realizo la consulta para saber que subprocesos puede tener el proceso xxx la respuesta es correcta según 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 relación muchos a muchos y si recibo las dos respuestas de manera satisfactoria, ¿mi pregunta es estará errónea la relación y si es así y tendría que cambiarlo nuevamente a la relación uno a muchos como hago con la consulta donde no recibo respuestas? Le agradecería su ayuda ya que me es urgente recibir su respuesta
Respuesta
1
Tomando en cuenta que proceso es tu tabla principal (hacia donde va la relación de 1) y subproceso es la tabla secundaria (Hacia donde va la relación 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
Ok, gracias por la aclaración sabiendo que lo correcto es la relación uno a muchos, ¿aun así estaría mal la relación muchos a muchos? ¿O sea influiría? ¿O no?
Bueno en realidad una relación 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 relación creándose una tabla intermedia o como se le conoce comúnmente una tabla detalle.
Por ejemplo: un cliente puede realizar varios pedidos y un pedido es realizado por un solo cliente. Fácil, relación de uno a muchos. Ahora un pedido tiene varios productos y un producto puede ser pedido varias veces, es una relación 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.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas