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