
20/07/2011, 15:24
|
 | Moderador criollo | | Fecha de Ingreso: noviembre-2007 Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 2 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) |