Sto facendo un database di studenti in una school.Here è quello che ho finora: Come rendere una chiave composta unica?
Se non ti piace leggere salto al "In breve" parte
Il problema è che non sono contento di questo design. Voglio che la combinazione di, subgrade
e id_class
sia univoca e che funga da chiave primaria per la tabella degli studenti. Posso rimuovere lo student_id
e creare una chiave composta dal 3 ma non voglio neanche quello. Forse dovrei fare un altro tavolo per dire combination_id
dove grade
, subgrade
e id_class
sono chiavi esterne e c'è una colonna in più comb_id
che funge da ID per la tabella. E tutte le colonne saranno chiavi primarie. Ma il problema è che quelle 3 colonne possono ancora ripetersi a causa di quella colonna aggiuntiva (comb_id
). Ad esempio, posso avere lo stesso, subgrade
e class_id
ma diverso comb_id
che renderà la riga valida a causa della chiave composta delle 4 colonne della tabella (combination_id
).
Insomma voglio students_id
di rimanere l'unica chiave primaria della tabella, ma per essere una chiave esterna a un'altra tabella, che è in qualche modo combinazione unica di grades
, subgrade
e class_id
.
Se non fossi abbastanza chiaro, chiedi nei commenti qui sotto e grazie in anticipo.
PS mi dispiace per il titolo indescriptive ma sono male a denominazione
EDIT 1: Per essere più chiari: grade
può essere da 1 a 12 subgrade
può essere un a j id_class
può essere da 1 a 30 ed è il vostro numero in classe
Così uno studente può essere da 7b classe e il suo numero in classe - 5
Non capisco, tutti gli studenti di una classe si sono arruolati per avere voti diversi? – Jodrell
Cosa farai quando gli studenti cambiano classe o, non succede mai? – Jodrell
Cosa c'è di sbagliato in una colonna 'student_id'? – Jodrell