Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/05/2011, 16:40
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, 5 meses
Puntos: 2658
Respuesta: ¿relacionar tablas en mysql?

Son conceptos diferentes. MySQL crea indices para administrar las FK, pero no son índices comunes. Sólo los usa para mantener la integridad y la relación, pero no se pueden invocar.
Por su lado, las FK (mira el link), deben forzosamente estar referidas a la PK de la otra tabla, o en su defecto a una clave candidata, caso en el cual esa clave debe haber sido definida como índice UNIQUE. No se puede hacer una FK que apunte a un campo o conjunto de campos que no sean PK o UNIQUE.
Además, las FK tienen otro requisito fundamental: Si son numéricas, deben ser del mismo tipo y rango que la PK de origen, si son te texto (CHAR o VARCHAR), deben ser de la misma longitud y CHARSET y COLLATION, si son de fecha y hora, deben ser del mismo tipo de dato, y si son compuestas, deben declararse todos sus campos en bloque, en el mismo orden y del mismo tipo de datos que su PK de origen.
¿Se entiende?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)