Wie am besten 1:n DB-Tabellen ausgeben?

DrEvil

Erfahrenes Mitglied
Hallo Community,
ich wollte mal fragen, wie ihr so Datenbank-Tabellen ausgebt, die eine 1:n Relation besitzen.

Das konkrete Beispiel ist, dass ich für die Uni in einer Tabelle Seminare gespeichert habe, die u.a. von einem oder mehreren Dozenten durchgeführt werden.

Ich habe die Tabellen normalisiert, sodass am Ende eine Tabelle "Seminare", eine Tabelle "Dozenten" und eine Tabelle die Zuordnung "SeminarZuDozent" angibt. Soweit so gut.

Im Grunde möchte ich nun die Daten auslesen und in einer Tabelle ausgeben. Ein Seminar welches von bspw. zwei Dozenten durchgeführt wird, soll nun natürlich nicht zweimal erscheinen, sondern in der Ausgabespalte "Dozenten" einfach gleich beide Dozenten angeben.


Ohne mich mit der konkreten (codetechnischen) Umsetzung auseinandergesetzt zu haben, fallen mir zwei Varianten ein:

a) Eine große Tabelle in der die Seminare mit sämtlichen Angaben (um im Beispiel zu bleiben) zweimal erscheinen, also einmal mit Dozent 1 und einmal mit Dozent 2. Die doppelten Angaben würde ich über ein Gruppenbruch-Verfahren reduzieren, sodass die Ausgabetabelle die gewünschte Form aufweist.

b) Ich habe bei der Suche nach Lösungsansätzen auch Vorschläge gefunden, wo aus den Daten erst ein mehrdimensionales Array gebaut wird, welches dann ausgegeben wird.


Irgendwie kann ich mir nicht vorstellen, dass das die einzigen Ansätze sind. Mehr fallen mir aber auch nicht ein. Deswegen wollte ich fragen, ob ihr mir Anregungen geben könnt oder Stichworte, in welche Richtung ich weiter recherchieren kann. Oder ob ihr selber eine der beiden Varianten nutzt.


Vielen Dank für die Hilfe!

Eric
 
Wie wäre folgender Ansatz?

Du liest Seminar 0 mit Dozent 0 ein.
Dann liest du Seminar i und Dozent j ein. Wenn Seminar i = Seminar i-1 ist, gibts du beide Dozenten aus. Und liest ein neues Seminar und einen neuen Dozenten ein.
Ansonsten gibst du Seminar -1 und Dozent j-1 aus und vergleichst dann die folgenden Datensätze mit i und j.
 
Hey timestamp,
danke für die Antwort zu so später/früher Stunde.

Ich bin mir nicht ganz sicher, ob ich deinen Ansatz richtig verstanden habe, aber ist das nicht de facto das Gruppenbruch-Verfahren?

Es würde doch voraussetzen, dass ich mir als Ausgangspunkt von MySQL eine über Joins erzeugte große Tabelle ausgeben lasse, in der ich in Kauf nehme, dass Seminare doppelt vorkommen und sie dann Schritt für Schritt vergleiche und wenn nötig zusammen streiche.

Hab ich's richtig verstanden?
 
Zurück