Tutorial: Erstellen einer n:m-Beziehung (Many-to-Many) in Microsoft Access
Hier ist ein ausführliches Tutorial, wie du eine Many-to-Many (n:m) Beziehung in Microsoft Access erstellst.
In der Welt der Datenbanken gibt es drei Arten von Beziehungen: 1:1, 1:n und n:m. Während Microsoft Access 1:n-Beziehungen direkt unterstützt, erfordert eine n:m-Beziehung (viele-zu-viele) einen kleinen Trick: eine sogenannte Verknüpfungstabelle (Junction Table).
Das Konzept verstehen
Ein klassisches Beispiel für eine n:m-Beziehung ist das Verhältnis zwischen Studenten und Kursen:
- Ein Student kann viele Kurse besuchen.
- In einem Kurs können viele Studenten sein.
Da man dies nicht direkt in zwei Tabellen speichern kann, ohne Datenredundanz zu erzeugen, benötigen wir eine dritte Tabelle in der Mitte.
Schritt 1: Die beiden Haupttabellen erstellen
Zuerst erstellen wir die beiden Tabellen, die miteinander verknüpft werden sollen.
- Tabelle „tblStudenten“:
StudentID(AutoWert, Primärschlüssel)Vorname(Kurzer Text)Nachname(Kurzer Text)
- Tabelle „tblKurse“:
KursID(AutoWert, Primärschlüssel)Kursname(Kurzer Text)Beschreibung(Langer Text)
Schritt 2: Die Verknüpfungstabelle erstellen
Dies ist der wichtigste Schritt. Die Verknüpfungstabelle löst die n:m-Beziehung in zwei 1:n-Beziehungen auf.
- Erstelle eine neue Tabelle namens „tblEinschreibungen“.
- Füge die folgenden Felder hinzu:
EinschreibungsID(AutoWert, Primärschlüssel – optional, aber empfohlen).RefStudentID(Zahl, Feldgröße: Long Integer) – Dies wird der Fremdschlüssel für die Studenten.RefKursID(Zahl, Feldgröße: Long Integer) – Dies wird der Fremdschlüssel für die Kurse.
- Optional: Du kannst auch weitere Informationen hinzufügen, die nur für diese Verbindung relevant sind, z. B.
NoteoderAnmeldedatum.
Schritt 3: Die Beziehungen im Beziehungs-Fenster definieren
Jetzt verknüpfen wir die Tabellen logisch miteinander.
- Klicke im Menüband auf den Reiter Datenbanktools und dann auf Beziehungen.
- Füge alle drei Tabellen (
tblStudenten,tblKurse,tblEinschreibungen) dem Fenster hinzu. - Die erste 1:n-Verbindung:
- Ziehe das Feld
StudentIDaustblStudentenauf das FeldRefStudentIDintblEinschreibungen. - Ein Fenster öffnet sich. Aktiviere das Kontrollkästchen Mit referenzieller Integrität.
- Klicke auf Erstellen.
- Ziehe das Feld
- Die zweite 1:n-Verbindung:
- Ziehe das Feld
KursIDaustblKurseauf das FeldRefKursIDintblEinschreibungen. - Aktiviere auch hier Mit referenzieller Integrität.
- Klicke auf Erstellen.
- Ziehe das Feld
Ergebnis: Du siehst nun eine Linie von tblStudenten zu tblEinschreibungen (1 zu ∞) und eine Linie von tblKurse zu tblEinschreibungen (1 zu ∞). Zusammen ergeben sie die n:m-Beziehung.
Schritt 4: Dateneingabe über Unterformulare (Praxis-Tipp)
Um die Daten benutzerfreundlich einzugeben, nutzt man in Access meist Formulare mit Unterformularen.
- Erstelle ein Formular basierend auf
tblStudenten. - Erstelle ein Unterformular basierend auf
tblEinschreibungen. - Wähle im Unterformular für das Feld
RefKursIDein Kombinationsfeld (Dropdown) aus, das seine Daten austblKursebezieht. - Wenn du nun einen Studenten im Hauptformular aufrufst, kannst du im Unterformular einfach mehrere Kurse auswählen. Access speichert im Hintergrund automatisch die IDs in der Verknüpfungstabelle.
Zusammenfassung der Vorteile
- Keine Redundanz: Kursnamen oder Studentennamen werden nicht mehrfach gespeichert.
- Flexibilität: Du kannst beliebig viele Studenten beliebig vielen Kursen zuweisen.
- Integrität: Durch die aktivierte referenzielle Integrität verhinderst du, dass ein Student einem Kurs zugewiesen wird, der gar nicht existiert.
Glückwunsch! Du hast erfolgreich eine n:m-Beziehung in Microsoft Access implementiert.