Ver Mensaje Individual
  #8  
Antiguo 11-07-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Reputación: 24
guillotmarc Va por buen camino
Hola.

Todo es cuestión de gustos, no digo que sea incorrecto lo que estás haciendo. Recuerdo haber visto tablas de Access con claves primarias formadas por más de 5 campos, y como tu caso, esos campos eran a la vez claves externas para relaciones entre tablas.

Pero a mi me gusta que la clave primaria sea un unico campo entero (autoincremental, no seleccionado por el usuario). Creo que esto facilita la definición de las relaciones de integridad.

Supón que a la tabla Carreras_Alumno, le quieres relacionar una tabla Examenes (para cada carrera un Alumno puede cursar más de un examen). Entonces en la tabla Examenes tendrás que guardar los campos Carrera, Alumno, añadiendo un campo Fecha para hacer una clave primaria formada por esos 3 campos.

¿ Que pasa si se cambia un código de la tabla Carreras ? Tienes que arrastrar ese cambio a la tabla Carreras_Alumno y Examenes. O más probable aún, como quieres poder hacer, si cambias el campo Carrera o Alumno en Carreras_Alumno entonces tienes que arrastrar el cambio a los registros relacionados de la tabla Examenes.

En cambio si cada tabla tiene su campo Entero como clave primaria, las relaciones són por ese campo. Entonces puedes cambiar tranquilamente un código de la tabla Carreras, o la Carrera o Alumno de un registro de Carreras_Alumnos, que no afecta para nada la validez de las tablas relacionadas.

Además las tablas tendrán menos campos y será más rápido y sencillo de definir las relaciones. (y no tendrás el problema con dbExpress, con el que sospecho que no podrás cambiar los valores de un campo de clave primaria).

NOTA : Si te interesa asegurar que en la tabla Carreras_Alumno se tengan que especificar los campos Carrera y Alumno, además de que no se puedan duplicar dos registros con los mismos valores de Carrera y Alumno, solo tienes que definir esos campos como no nulos, y añadir un índice único a la tabla, formado por los dos campos.

Es solo una opinión (la forma que yo uso), pero espero que te sea de ayuda.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).

Última edición por guillotmarc fecha: 11-07-2003 a las 00:07:23.
Responder Con Cita