Jak uczynić klucz kompozytowy wyjątkowym?

Tworzę bazę danych uczniów w jednej szkole. Oto, co mam do tej pory:

Jeśli nie lubisz czytać, przejdź do części „W skrócie”

Problem polega na tym, że nie jestem zadowolony z tego projektu. Chcę połączeniegrade, subgrade iid_class być unikalnym i służyć jako klucz podstawowy dla tabeli uczniów. Mogę usunąćstudent_id i utwórz klucz złożony z 3, ale tego też nie chcę. Może powinienem zrobić inny stółcombination_id gdziegrade, subgrade iid_class są klucze obce i jest jedna dodatkowa kolumnacomb_id który służy jako identyfikator tabeli. A wszystkie kolumny będą kluczami podstawowymi. Ale problem polega na tym, że te 3 kolumny mogą się powtarzać z powodu tej dodatkowej kolumny (comb_id). Na przykład mogę mieć to samograde, subgrade iclass_id ale innycomb_id co spowoduje, że wiersz będzie ważny z powodu złożonego klucza 4 kolumn tabeli (combination_id).

W skrócie chcęstudents_id pozostać jedynym kluczem podstawowym tabeli, ale być kluczem obcym do innej tabeli, która jest w jakiś sposób unikalną kombinacjągrades, subgrade iclass_id.

Gdybym nie był wystarczająco jasny, zapytaj w komentarzach poniżej i z góry dziękuję.

PSPrzepraszam za ten nieopisany tytuł, ale jestem zły w nazywaniu

EDYTUJ 1: Aby być bardziej zrozumiałym:grade może wynosić od 1 do 12subgrade może być a do jid_class może wynosić od 1 do 30 i jest to Twój numer w klasie

Zatem uczeń może być z klasy 7b, a jego numer w klasie - 5

questionAnswers(3)

yourAnswerToTheQuestion