Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/05/2011, 16:11
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?

Es una pregunta de fundamentos de las bases de datos. Parte de la info la puedes sacar de Wikipedia, porque se trata de un tema basico: Wikipedia::Clave foránea.
En una forma simple, se trata de una restricción que se impone a las tablas para asegurar la consistencia, integridad y evitar la redundancia de datos.
Su uso no es necesariamente rapidez, pero sí implica un modelado de mayor precisión y más sencillo de mantener, precisamente porque no es posible, en presencia de FK, que existan datos mal almacenados en los campos críticos, no pueden existir relaciones "huérfanas" y tampoco datos que no se actualicen debidamente.
La existencia de una FK no trae diferencias a las consultas de SELECT en cuanto al uso de INNER JOIN, pero entre otras cosas te asegura que jamás queden datos sin aparecer, porque siempre estarán correctamente vinculados.
Pueden, si, a la hora de realizar consultas basadas en campos que sean FK, cierta mejora en la rapidez de ejecución, por cuanto toda FK genera un índice donde se vinculan los valores de ambas tablas (cardinalidad N.N), o sobre la tabla hija (cardinalidad 1:N).
El tema de las FK es fundamental en varias de las asignaturas de las carreras universitarias de Sistemas, especialmente en Bases de Datos. No puedes trabajar correctamente en esta área sin conocerlo porque es parte del modelo de todos los DBMS en el mercado.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)