Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/05/2011, 06:10
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Duda diseño de base de datos

Eso es una relación N:M y se soluciona con una tercera tabla tal y como correctamente has intuido....

La tercera tabla solo guarda los identificadores relacionados entre si, "idRel" podrias opcionalmente agregar un id de la relacion para simplificar la llave primaria y un indice unico sobre idCarrera,idCurso.

idCarrera puede aparecer N veces en la tabla RelCarreraCurso y idCurso puede aparecer M veces, pero un par (idCarrera,idCurso)=(X,Y) solo puede aparecer una vez...

Eso minimiza la info repetida que guardas, puesto que solo prepites ids...

No uses como id el codigo oficial puesto que puede ser muy largo lo mejor es tener un id Integer Auto inc, y controlas la repeticion de codigos con un indice unico...

Si tienes

Carreras
idCarrera Codigo....... Nombre...
1..............FyLCG254...CarreraFyLCG254...
2..............FyLCG255...CarreraFyLCG255...
....

Cursos
idCurso...Codigo.........Nombre...
1.............CFyLCG257..CursoCFyLCG257...
2.............CFyLCG258..CursoCFyLCG258...
...

RelCarreraCurso
diRel...IdCarrera...idCuros
1...............1...............1
2...............1...............2
3...............2...............1
4...............2...............2
...

La info guardada de mas es mínima.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 02/05/2011 a las 06:24