Wie macht man einen zusammengesetzten Schlüssel einzigartig?
Ich erstelle eine Datenbank mit Schülern einer Schule. Hier ist, was ich bisher habe:
Wenn Sie nicht gerne lesen, gehen Sie zum Teil "Kurz"
Das Problem ist, dass ich mit diesem Design nicht zufrieden bin. Ich möchte die Kombination vongrade
, subgrade
undid_class
einzigartig zu sein und als Primärschlüssel für den Schülertisch zu dienen. Ich kann das entfernenstudent_id
und mache einen zusammengesetzten Schlüssel aus den 3, aber ich will das auch nicht. Vielleicht sollte ich einen anderen Tisch machen, sagen wir malcombination_id
wohergrade
, subgrade
undid_class
sind Fremdschlüssel und es gibt eine zusätzliche Spaltecomb_id
das dient als ID für die Tabelle. Alle Spalten sind Primärschlüssel. Das Problem ist jedoch, dass diese 3 Spalten aufgrund dieser zusätzlichen Spalte immer noch wiederholt werden können (comb_id
). Zum Beispiel kann ich das gleiche habengrade
, subgrade
undclass_id
aber anderscomb_id
wodurch die Zeile aufgrund des zusammengesetzten Schlüssels der 4 Spalten der Tabelle gültig wird (combination_id
).
Kurz gesagt, ich willstudents_id
der einzige Primärschlüssel der Tabelle zu bleiben, aber ein Fremdschlüssel für eine andere Tabelle zu sein, die irgendwie eine einzigartige Kombination von istgrades
, subgrade
undclass_id
.
Wenn ich nicht klar genug war, frage in den Kommentaren unten und danke im Voraus.
PSDer unbeschreibliche Titel tut mir leid, aber ich kann ihn schlecht benennen
EDIT 1: Um es klarer zu machen:grade
kann 1 bis 12 seinsubgrade
kann a bis j seinid_class
kann 1 bis 30 sein und es ist Ihre Nummer in der Klasse
So kann ein Schüler aus der Klasse 7b und seine Nummer in der Klasse 5 sein