Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/10/2007, 09:56
Avatar de Kelpie
Kelpie
 
Fecha de Ingreso: febrero-2002
Ubicación: NorthSpain
Mensajes: 609
Antigüedad: 22 años, 2 meses
Puntos: 8
Re: ** llaves foraneas **

Fijar una "clave foránea" (en adelante FK) en la base de datos es algo más que cuestión de presentación. En realidad estás marcando unas normas de "llenado" de la base. Por ejemplo, en tu caso, el campo B_A_ID podría ser una FK relacionada con el campo A_ID de la tabla A. Si fijas eso en la base de datos no podrás meter un registro en la tabla B sin que exista un registro en la tabla A con el que se relacione. Es decir, si intentas meter un registro en B del tipo (001,"Su trabajo",007) deberá haber un registro en A cuyo A_ID sea 007.
Por otra parte, no podrás borrar de A registros que estén relacionados en B. Es decir, que no podrías borrar de A un registro con A_ID valor 007 mientras haya registros en B con ese valor en el campo B_A_ID.

Bueno, ésto es solo un barniz de lo que es y como se comporta una FK...

Puede hacer una consulta relacionando las dos tablas, aunque estrictamente no es necesario que exista la FK para hacerlo. Más o menos así:

SELECT A_ID, A_NOMBRE, A_APELLIDO, B_TRABAJO FROM A LEFT JOIN B ON A.A_ID=B.B_A_ID WHERE A_NOMBRE LIKE "JU%"

Para obtener el nombre, apellido y trabajo de los currelas cuyo nombre empieza por "JU"
__________________
Kelpie

Última edición por Kelpie; 05/10/2007 a las 10:01