Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/06/2010, 14:47
donramone
 
Fecha de Ingreso: junio-2009
Mensajes: 19
Antigüedad: 14 años, 10 meses
Puntos: 0
Opinion para armar una clave primaria

Cuento mi probelma:

Mostramos a nuestro profesor una base de datos y el nos pidió que armemos de cierta manera la clave primaria.
¿Cual es mi problema? como teniamos las tablas funcionaban y el cambio que nos pidio no lo entiendo muy bién

Ejemplifico asi se entiende de que hablo (con abstraccion de datos)
La base de datos es para un colegio, las tablas que voy a mostrar son para el "plan de estudio" (curricula creo que pude ser en otros paises)

tblPlan (IDplan-PK-, NombrePlan-numeric-)
tblCarrera (IDcarrera-PK-, Nombre, IDplan-FK-)
tblMateria (IDmateria-PK-, NombreMateria, CursoMateria ,IDCarrera-FK-, IDPlan-FK-)

* Todos las PK son autonumericas
* No hay relaciones muchos a muchos, una materia no puede estar en dos carreras ni en dos planes, tampoco una carrera en dos planes.

El profesor quiere que la clave de la materia contenga datos del plan, carrera y curso

Ej: Id_materia: 20002317
2000(Nombreplan)2(IDcarrera)3(CursoMateria)17(el identificador de la materia)

Según el profesor con esta clave podriamos consultar varios datos solo en el idmateria, primero lo vi muy logico, pero a la hora de armar el codigo se me complica y me pregunto si vale la pena armarla asi

¿Vale la pena armar ID de esa forma?
¿Estaba bién armada anteriormente la tabla?
¿Un ID de 9 0 10 digitos no es "malo"?

Y las consultas, por ejemplo; obtener todas las materia del plan "2000"
Para mi seria facilisimo asi SELECT nombre FROM Materia WHERE id_plan=2000
Pero de con esta forma quitaria el idplan y tendria que buscar el 2000 en el idmateria y lo veo mucho mas complicado tampoco se si vale la pena.

Espero sus opiniones y que alguién me pueda dar una mano
Desde ya muchas gracias!!!

PD: alguién seguramente va a pensar por que no se lo planteo a mi profesor, es que no lo voy a ver hasta dentro de un mes más o menos.