Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Relacionar 2 tablas

Estas en el tema de Relacionar 2 tablas en el foro de Mysql en Foros del Web. Hola. Tengo una curiosidad que no se si se puede hacer. Resulta que tengo por ejemplo 2 tablas. EMPRESAS y MODELOS_EMPRESA. Pues bien, la tabla ...
  #1 (permalink)  
Antiguo 13/11/2007, 03:59
 
Fecha de Ingreso: septiembre-2005
Mensajes: 379
Antigüedad: 18 años, 7 meses
Puntos: 0
Relacionar 2 tablas

Hola. Tengo una curiosidad que no se si se puede hacer. Resulta que tengo por ejemplo 2 tablas. EMPRESAS y MODELOS_EMPRESA. Pues bien, la tabla EMPRESAS tiene como primary key (id_empresa), pero la tabla MODELOS_EMPRESA tiene como primary key(id_empresa,id_modelo).

Ahora viene la pregunta.... es posible relacionar esas 2 tablas? Me refiero a si es posible relacionar una tabla con una primary key simple con otra tabla con una primary key doble. Como se haría? ¿Seria necesario tener en ambas tablas 2 primary key?


Gracias.
  #2 (permalink)  
Antiguo 14/11/2007, 09:50
 
Fecha de Ingreso: septiembre-2005
Mensajes: 379
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: Relacionar 2 tablas

A ver si alguien puede echarme una manita xDD
  #3 (permalink)  
Antiguo 20/07/2011, 14:51
 
Fecha de Ingreso: julio-2011
Mensajes: 1
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Relacionar 2 tablas

Hola yo tmb tengo el mismo problema y hasta ahora no encuentro solucion!!!
si ya la encontraste te agradeceria mucho si la posteas porque la necesito urgente y bno si yo la encuentro hare lo mismo!!
gracias de antemano
  #4 (permalink)  
Antiguo 20/07/2011, 15:24
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Relacionar 2 tablas

En realidad el tema es que no estás planteando las tablas correctamente:
- Si tienes una tabla "Empresa" es porque tienes más de una empresa registrada.
- Tienes una entidad "Modelos" que contiene los modelos fabricados por una empresa, tienes entonces una relación entre modelo y empresa. Para poder saber cómo se relacionan hay que responder una pregunta: ¿Cada modelos corresponde a una sola empresa o diferentes empresas pueden tener el mismo modelo?
Si es el primer caso, la relación es 1:1 y la PK de la tabla empresa estará como FK en la tabla Modelo.
Pero si es el segundo caso, hay una tabla más, porque la relación sería N:N y por tanto debe existir una tabla que regule la unicidad de la relación, donde las dos PK sean al mismo tiempo FK de cada una de sus tablas origen.

Vamos a hacer una aclaración: La relación entre empresa y modelos_empresa que pones no implica que la PK de empresa se relacione con toda la PK modelos_empresa, sino sólo con la FK que es el campo id_empresa. Nada más, porque es modelos_empresa la tabla que depende de empresa.
Sólo puedes declarar una FK multicampo si y sólo si la PK de origen es también multicampo, y no es el caso.

¿Se entiende un poco la idea?

Sugerencia: necesitan estudiar los fundamentos básicos del modelo relacional. Sin eso estos conceptos resultan demasiado abstractos.
Infortunadamente BBDD no es un área de dominio fácil para los autodidactas, y no se puede aprender bien leyendo tutoriales, porque los mismos dan por sentado que ciertos conceptos ya se aprendieron, o como mínimo, se conocen.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 20/07/2011, 15:33
Avatar de jatg  
Fecha de Ingreso: abril-2011
Ubicación: caracas
Mensajes: 152
Antigüedad: 13 años
Puntos: 15
Respuesta: Relacionar 2 tablas

hola, sneider te comento debes relacionar las claves externas o forintkey y con eso ya las tienes relacionada busca en las faqs hay encontraras un manual de mysql.

suerte
__________________
www.josealexis.net
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 16:25.