Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/01/2010, 09:18
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Multiples Foreign Keys a Multiples references

No se entiende bien la estructura de relaciones, pero por lo que se ve, no estás definiendo correctamente el sentido de las FK.
Partamos de la base que una FK es un campo cuyo valor hace referencia a la PK de otra tabla.
Esto quiere decir que si la PK de la tabla referida está compuesta por un sólo campo, la FK será un sólo campo también; pero si la PK es compuesta por más de un campo, todos los campos de esa clave deben tener su correspondiente campo en la tabla donde figuran como FK.
Esto:
Código MySQL:
Ver original
  1. FOREIGN KEY (`id_company` , `id_related_company` )
  2. REFERENCES `db`.`companies` (`id_company` , `id_company` ),
no es válido si la tabla COMPANIES tiene una clave compuesta por un sólo campo.
Lo que debes tener en cuenta es que cada relación FK debe ser definida independientemente. En tu caso, si `id_company` e `id_related_company` son FK que apuntan a una clave simple, requieren dos declaraciones de FK independientes.
No existen en MySQL declaraciones de FK globales para varios campos al mismo tiempo.

¿Se comprende la idea?

Esto no es únco de MySQL. Es parte de la definición del modelo relacional.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)