Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/01/2011, 05:14
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: 16 años, 4 meses
Puntos: 2658
Respuesta: Integridad referencial con MySql Workbench

Si no te deja crear la FK es muy probable (MUY probable) que haya una discrepancia de tipos de datos o collation que no se vea simple vista. A veces las diferencias son muy sutiles.
Infortunadamente Workbench no hace ninguna advertencia cuando creas el diagrama y se produce una incompatibilidad de ese tipo.
Cuando eso suceda, revisa el tipo de columnas que estás tratando de relacionar: deben ser del mismo rango si son numéricas, y de la misma collation si son de caracteres.

Para ejemplificarlo: Si un campo es INT y el otro INT UNSIGNED o BIGINT no tienen el mismo rango de datos, e incluso entre dos campos, uno TINYINT y otro TINYINT UNSIGNED, el rango es diferente.
En el caso de de los de caracteres (CHAR y VARCHAR), si una es utf8 y la otra latin1, no tienen la misma collation, por lo que no hay conicidencia en la página de caracters para las mismas letras.
Lo mismo pasa si se pretende vincular un DATE con un DATETIME.

En este caso no te permite crear las relaciones de clave foránea porque existe en uno de ellos un conjunto de datos posibles que jamás van a coincidir con el otro, y por tanto habrá INSERTs a una tabla perfectamente lícitos, que violarían el rango de la otra...

Supongoque se entiende la idea.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)