estoy haciendo una base de datos de los estudiantes en una school.Here es lo que tengo hasta ahora: ¿Cómo hacer que una clave compuesta sea única?
Si no te gusta leer salto a la "En pocas palabras" parte
El problema es que no estoy contento con este diseño. Deseo que la combinación de grade
, subgrade
y id_class
sea única y que sirva como clave principal para la tabla de estudiantes. Puedo eliminar student_id
y crear una clave compuesta de 3, pero tampoco quiero eso. Tal vez debería hacer otra tabla digamos combination_id
donde grade
, subgrade
y id_class
son claves externas y hay una columna adicional comb_id
que sirve como ID para la tabla. Y todas las columnas serán Claves primarias. Pero el problema es que esas 3 columnas todavía se pueden repetir debido a esa columna adicional (comb_id
). Por ejemplo, puedo tener el mismo grade
, subgrade
y class_id
pero diferente comb_id
que hará que la fila sea válida debido a la clave compuesta de las 4 columnas de la tabla (combination_id
).
En pocas palabras quiero students_id
seguir siendo la única clave primaria de la tabla pero para ser una clave externa a otra tabla, que es de alguna manera combinación única de grades
, subgrade
y class_id
.
Si no fui lo suficientemente clara, pregunte en los comentarios debajo y gracias de antemano.
PS lo siento por el título indescriptive pero yo soy malo en nombrar
EDIT 1: Para ser más claro: grade
puede ser del 1 al 12 subgrade
puede ser una de j id_class
puede ser del 1 al 30 y es su número en clase
Así que un estudiante puede ser de clase 7b y su número en la clase - 5
No entiendo, ¿todos los estudiantes de una clase tienen diferentes calificaciones? – Jodrell
¿Qué harás cuando los alumnos cambien de clase o esto nunca ocurra? – Jodrell
¿Qué pasa con una columna 'student_id'? – Jodrell