MySQL - Relaccionar 2 tablas

 
Vista:

Relaccionar 2 tablas

Publicado por sneider (6 intervenciones) el 13/11/2007 18:38:17
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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Relaccionar 2 tablas

Publicado por David M. (9 intervenciones) el 14/11/2007 21:00:11
Saludos.
COn un modelador se te haria la vida mas facil.

Para relacionar dos tablas, la unica regla es que la clave primaria del padre, pase a ser clave foranea del hijo.

Seria conveniente ver un ejemplo de la data, ya que a simple vista, modelos_empresas parece tener una relacion de muchos a muchos.

Espero haber ayudado.

Atentamente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Relaccionar 2 tablas

Publicado por sneider (6 intervenciones) el 15/11/2007 09:01:16
Hola David. gracias por tu contestacion.Te cuento un poco...

Tengo una tabla SOCIEDADES con los campos: id_sociedad,cif, nombre, domicilio,ciudad ....
cuya PRIMARY KEY es (id_sociedad)

Tengo otra tabla MODELOS_EMPRESA con los campos: id_modelo_empresa,id_sociedad2,id_modelo,fecha_alta,fecha_baja
cuya PRIMARY KEY es (id_sociedad2,id_modelo)

Pues bien...como relaciono yo esas 2 tablas si una tabla tiene una primary key compuesta y la otra una primary key simple?

Podria yo hacer lo siguiente?

alter table MODELOS_EMPRESA add constraint FOREIGN KEY (id_sociedad2) REFERENCES SOCIEDADES (id_sociedad)

Es correcto coger solo un campo de la primary key compuesta?

Gracias por todo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Relaccionar 2 tablas

Publicado por David M (9 intervenciones) el 15/11/2007 16:05:10
Claro.
Te explico, la funcion de una clave primaria es verificar que los registros no se duplique, en tu caso no pueden existir dos modelos empresa en una misma sociedad, de acuerdo a tu primary key

Por otro lado, las relaciones o claves foraneas (foreign key) sirven para establecer un enlace entre una tabla padre y una tabla hijo, es decir en tu caso, solo para indicar que el codigo de sociedad de tu tabla modelos_empresas, existe y tiene su descripcion en la tabla sociedad.

creo que escribi mucho, pero en resumidas cuentas no importa si tu tabla tiene "n" campos de clave primaria, una clave primaria puede a su vez ser clave foranea.

Espero no haberte enredado mas.

Cualquier consulta estoy a tu disposición.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar