Zusammengesetzten PrimaryKey als Foreigen Key nutzen

fhs14647

Neuer Benutzer
Beiträge
4
Werte Profis
Ich habe eine theoretische Fragen. Ich habe folgende Ausgangslage:


a.) Tabelle Lehrer mit Namen der Lehrer, PK ist LehrerID
b.) Tabelle Faecher mit Namen von möglichen Unterrichtsfächern, PK ist FaecherID
c.) Zwischen den Tabellen Lehrer und Fächer besteht eine n:m Beziehung, da jeder Lehrer mehrer Fächer unterrichtet bzw. 1 Fach auch von mehreren Lehrern unterrichtet werden kann.
d.) ich mache eine Zwischentabelle LehrerFaecher mit den Feldern LehrerID und FaecherID und vergebe in dieser auf die LehrerID bzw. FaecherID einen zusammengesetzten PrimaryKey und vergebe auch gleichzeitig auf beide Felder einen Foreign Key auf die referenzierten Tabellen Lehrer und Faecher.
Die Kombination dieser beiden Felder ist also eindeutig.
e.) dann habe ich noch eine Termin-Buchungs-Tabelle mit Zeitangaben von 08:00 bis 16 Uhr, PK ist die StundenID (z.B. 14:00). Ein Foreign-Key sollte auf die Zwischentabelle LehrerFaecher mit der dort eindeutigen Konstellation zeigen.

Meine Frage: wie setzt man e.) praktisch um ??

Vielen Dank vorab
fhs14647
 
Werbung:
.. ich muss, denke ich, meine Frage eindeutiger stellen. Ich habe in der Termin-Buchungs-Tabelle wie gesagt die StundenID als PK und als Foreign Keys die Referenzen auf die Felder LehrerID und FaecherID der Zwischentabelle LehrerFaecher.
Meine Frage ist eigentlich genau genommen: löst man solche Problemstellungen so wie ich das gemacht habe oder gibt es hier professionellere Herangehensweisen??

Danke vorab
fhs14647
 
Also ich bin jetzt nicht der geborene Theoretiker aber hier mal meine Anmerkungen:

1) StundenID sollte nicht 14:00 sein, jedenfalls nicht ohne konkretes Datum. Denn sobald du an 2 Tagen um 14:00 unterichtest ist es natürlich nicht mehr eindeutig.
2) Die PK und FKs sehen theoretisch erstmal nicht schlecht aus, ich denke das ist korrekt. Allerdings sind in der Praxis zusammengesetzte PKs nervig und ich würde sagen zumindest ungewöhnlich. Sie sparen auch in deinem Beispiel keinen Platz mehr wenn du dann unter e) dazu genötigt wirst 2 Spalten für eigentlich nur eine Referenz in deiner Stunden-Tabelle zu erstellen. Sobald deine Stundentabelle mehr Einträge hat als deine Zwischentabelle (was warscheinlich ist) fährst du mit einem zusätzlichen, künstlichen PK für die Zwischentabelle besser.

Das ist jetzt recht frei beschrieben, ich denke es gibt sicher irgendeine Normalform die das mathematisch ausdrückt :)
 
Werbung:
Zurück
Oben