Hallo,
ich versuche mich gerade an meiner ersten Web-Anwendung mit PHP und MySQL und würde gerne wissen, wie man bei der Datenabfrage "am Besten" vorgeht. Dazu ein (vereinfachtes) Beispiel:
Ich habe in der Datenbank drei Tabellen, die eine n:m-Beziehung abbilden:
Tabelle A: Vorlesungen (ID, Bezeichung, Uhrzeit, Raum, etc.)
Tabelle B: Studenten (ID, Name, Vorname, etc.)
Tabelle C (Beziehungstabelle): Belegung (VorlesungsID, StudentenID)
Nun möchte ich zu einer bestimmten Vorlesung jeweils deren Daten als auch die dazugehörigen Studenten abfragen. Wie geht man hier "üblicherweise" vor?
Ist es besser anhand der Vorlesungs-ID zunächst Uhrzeit, Raum, usw. abzufragen und dann in einer zweiten Abfrage die entsprechenden Studenten. ODER: Ruft man in einer einzigen Abfrage mit Hilfe von Joins alle Daten ab.
Bei der ersten Methode hat man ja zwei Zugriffe auf die Datenbank. Die zweite Methode braucht nur einen Zugriff, aber dafür hat man redundante Daten im Ergebnis (da sich ja die Daten für die Vorlesung pro Student in jedem Datensatz wiederholen).
Ich hoffe ich konnte meine beiden Ansätze verständlich erklären und würde nun gerne wissen, welcher von beiden der bessere ist? (Gerade auch im Hinblick auf komplexere Beispiele in denen mit großen Datenmengen gearbeitet wird.) Oder kann man diese Frage gar nicht so pauschal beantworten?
Ich wäre auch dankbar für Hinweise, falls es eventuell noch andere Ansätze gibt, die ich grad übersehe.
Gruß,
Xeno