Ver Mensaje Individual
  #8  
Antiguo 18-10-2010
lbuelvas lbuelvas is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 378
Reputación: 24
lbuelvas Va por buen camino
Las llaves foraneas garantizan que haya integridad en la informacion, es decir, que un campo o campos de un registro tengan un valor de referncia en un registro de otra tabla.

Una llave foranea es en el fondo un indice y como tal te genera mas espacio en disco y un tiempo de procesamiento cuando insertas, modificas o borras registros.

La ventaja es que las consultas pueden ser en la mayoria de las ocasiones mucho mas efcientes porque esos indices los utiliza el motor para elabora el plan que debe seguir para recuperar información de la base de datos.

Sin llaves foraneas se incrementa la complejidad del aplicativo porque tendrian que ponerse esos controles del lado del software que estes desarrollando para mantener la integridad de la información y además el aplicativo iria mas lento porque al verificar la existencia de un registro en una tabla con el valor que pretendes insertar en otra, la base de datos tendría que hacer un recorrido sobre toda la tabla hasta encontrar dicho valor, si esta tabla es de cientos de miles de registros sería catastrófico.

Creo que lo mejor es el uso de las llaves primarias y foraneas, sin embargo, esperamos otro tipo de opiniones para ver en que casos sería aplicable dejar de usar total o parcialmente las llaves foráneas.
__________________
Luis Fernando Buelvas T.
Responder Con Cita