MySql Datenbank Inner-Join


archerX

Grünschnabel
Hallo zusammen, ich bin noch relativ neu im programmieren und kenne mich noch nicht so gut mit PHP aus. Ich habe mit Flask eine Nachfolgeplattform programmiert, bei der sich Schüler anmelden können. Die Schüler können sich entweder als Tutor registrieren und in ausgewählten Fächern Nachhilfe anbieten oder sie registrieren sich als Schüler und suchen in ausgewählten Fächer nach Nachhilfe. In Flask konnte ich soweit alles programmieren, jedoch Frage ich mich wie ich die Tabellen in der Datenbank zusammenführen soll. Zurzeit habe ich die Tabelle Nutzer welche "ID, Name, Vorname, Email, Passwort, Rolle, Fachname und Admin beinhaltet" und die Tabelle Fächer welche "Fachnummer und Fachname" beinhaltet. Nun möchte ich die Tabelle Nutzer mit Tabelle Fächer verbinden, ich habe mir überlegt die Tabellen mit der Inner-Join Funktion zu verbinden ( SELECT Name, Vorname, E-mail, Fachname from Nutzer INNER JOIN Fächer ON Nutzer.Fachname=Fächer.Fachname). Da es aber mehrere Tutoren gibt die auch mehrere Fächer unterrichten können Frage ich mich, wie ich vorgehen muss damit ich eine Tabelle anzeigen lassen kann, in welcher man sehen kann Welche Tutoren welche Fächer anbieten. Ist die Inner-Join Funktion dafür der richtige Ansatz ? Stand jetzt kann ein Fach nur von einem einzigen Tutor angeboten werden.

Ich hoffe, ihr könnt mir sagen welcher Ansatz richtig ist!

Vielen Dank im Voraus.
 

Zvoni

Erfahrenes Mitglied
Steht doch da im Wikipedia-Beitrag.
n:m
n:m-Beziehungen können in den meisten relationalen Datenbanken nicht direkt umgesetzt werden. Zur Realisierung wird eine zusätzliche Tabelle erstellt, die die Primärschlüssel beider Tabellen als Fremdschlüssel enthält. Die n:m-Beziehung wird also aufgelöst, und man erhält eine weitere Datenbanktabelle, die zwei 1:n-Beziehungen realisiert.
Oft werden für die Bezeichnung der die n:m-Beziehung realisierenden Tabelle die Bezeichnungen der beiden daran beteiligten Tabellen verwendet; bei den Tabellen „Student“ und „Professor“ könnte so die zusätzliche Tabelle „StudentProfessor“ heißen.
Gehören zur n:m-Beziehung weitere Attribute, so wird häufig bereits im ER-Modell ein eigener Entitätstyp gebildet, womit zwei getrennte 1:n-Beziehungen entstehen. Beispiel: Hotel ist reserviert für Person; neuer Entitätstyp 'Reservierung' – mit n:1-Beziehungen zu Person und Hotel und weiteren Attributen wie Reservierungszeitraum, Reservierungsstatus etc.
EDIT: Dieser Thread ist besser im Datenbank-Forum aufgehoben, weil es mMn nix/wenig mit PHP zu tun hat.

EDIT2: Ich weiss ja wie ich es machen würde, aber du sollst ja schliesslich was lernen.....
 
Zuletzt bearbeitet:

Neue Beiträge