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