Como fazer uma chave composta ser única?

Eu estou fazendo um banco de dados de alunos em uma escola. Aqui está o que eu tenho até agora:

Se você não gosta de ler o salto para a parte "Em suma"

O problema é que não estou feliz com esse design. Eu quero a combinação degrade, subgrade eid_class ser único e servir como chave primária para a tabela de alunos. Posso remover ostudent_id e faça uma chave composta a partir dos 3, mas também não quero isso. Talvez eu deva fazer outra mesa, vamos dizercombination_id Ondegrade, subgrade eid_class são chaves estrangeiras e há uma coluna extracomb_id que serve como ID para a tabela. E todas as colunas serão Chaves Primárias. Mas o problema é que essas 3 colunas ainda podem repetir por causa dessa coluna extra (comb_id). Por exemplo, eu posso ter o mesmograde, subgrade eclass_id Mas diferentecomb_id o que tornará a linha válida por causa da chave composta das 4 colunas da tabela (combination_id).

Em suma eu querostudents_id para permanecer a única chave primária da tabela, mas para ser uma chave estrangeira para outra tabela que é de alguma forma uma combinação única degrades, subgrade eclass_id.

Se eu não estava claro o suficiente perguntar nos comentários abaixo e agradeço antecipadamente.

PSSinto muito pelo título indescritível, mas sou ruim em nomear

EDIT 1: Para ser mais claro:grade pode ser de 1 a 12subgrade pode ser um a jid_class pode ser de 1 a 30 e é o seu número na aula

Então, um aluno pode ser de 7b e seu número em sala de aula - 5

questionAnswers(3)

yourAnswerToTheQuestion