¿Cómo hacer que una clave compuesta sea única?
Estoy haciendo una base de datos de estudiantes en una escuela. Esto es lo que tengo hasta ahora:
Si no te gusta leer salta a la parte "En resumen"
El problema es que no estoy contento con este diseño. Quiero la combinacion degrade
, subgrade
yid_class
ser único y servir como clave principal para la tabla de alumnos. Puedo quitar elstudent_id
y hacer una clave compuesta de los 3 pero tampoco quiero eso. Tal vez debería hacer otra mesa digamoscombination_id
dóndegrade
, subgrade
yid_class
Son claves foráneas y hay una columna extra.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 aún pueden repetirse debido a esa columna adicional (comb_id
). Por ejemplo puedo tener el mismograde
, subgrade
yclass_id
pero diferentecomb_id
lo que hará que la fila sea válida debido a la clave compuesta de las 4 columnas de la tabla (combination_id
).
En fin quierostudents_id
para seguir siendo la única clave principal de la tabla, pero para ser una clave externa a otra tabla que es de alguna manera una combinación única degrades
, subgrade
yclass_id
.
Si no estaba lo suficientemente claro, pregunte en los comentarios a continuación y gracias de antemano.
PDLo siento por el título indescriptivo pero soy malo en nombrar
EDITAR 1: Para ser más claros:grade
puede ser 1 a 12subgrade
puede ser una a jid_class
Puede ser de 1 a 30 y es tu número en clase.
Así que un estudiante puede ser de clase 7b y su número en clase - 5