Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Zusammengesetzten PrimaryKey als Foreigen Key nutzen

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von fhs14647, 10 Mai 2014.

  1. fhs14647

    fhs14647 Neuer Benutzer

    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
     
  2. fhs14647

    fhs14647 Neuer Benutzer

    .. 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
     
  3. ukulele

    ukulele Datenbank-Guru

    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 :)
     
  4. fhs14647

    fhs14647 Neuer Benutzer

    Hallo Ukulele

    Vielen Dank für deine Hilfe und meine Frage ist damit beantwortet.
    fhs14647
     
Die Seite wird geladen...
Ähnliche Themen - Zusammengesetzten PrimaryKey Foreigen
  1. exzel
    Antworten:
    9
    Aufrufe:
    1.636

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden