Lektion 02 - Relationen
Tabellen verbinden und Datenmodelle planen
In relationalen Datenbanken liegen Daten nicht in einer riesigen Tabelle, sondern in mehreren passenden Tabellen. Beziehungen verbinden diese Tabellen miteinander.
1. Warum mehrere Tabellen?
Wenn du alles in eine Tabelle schreibst, entstehen Wiederholungen, Fehler und
schwere Pflege. Mehrere Tabellen sorgen fuer Ordnung: User liegen in
users, Kurse in courses, Lektionen in lessons.
users
id
name
email
courses
id
title
lessons
id
course_id
title
2. Beziehung: 1:n
Eine 1:n-Beziehung bedeutet: Ein Datensatz auf der einen Seite kann zu vielen Datensaetzen auf der anderen Seite gehoeren. Beispiel: Ein Kurs hat viele Lektionen. Eine Lektion gehoert aber zu genau einem Kurs.
courses.id ----< lessons.course_id
Dart Kurs Variablen
Dart Kurs Null Safety
Dart Kurs Klassen
3. Beziehung: n:m
Eine n:m-Beziehung bedeutet: Viele Datensaetze koennen mit vielen anderen Datensaetzen verbunden sein. Beispiel: User koennen viele Kurse belegen, und ein Kurs kann viele User haben. Dafuer braucht man eine Zwischentabelle.
users
id
name
courses
id
title
course_enrollments
user_id
course_id
course_enrollments ist die Verbindungstabelle. Sie speichert, welcher
User in welchem Kurs ist.
4. Kardinalitaeten lesen
5. Beispielmodell fuer ein Lernsystem
users
id
name
email
courses
id
title
topic
lessons
id
course_id
title
sort_order
tasks
id
lesson_id
title
points
task_results
id
user_id
task_id
is_done
completed_at
Das Modell zeigt: Ein Kurs hat Lektionen, eine Lektion hat Aufgaben, User erledigen
Aufgaben ueber task_results.
6. Modellierungs-Uebungen
- Plane Tabellen fuer eine Notizen-App mit Kategorien.
- Plane Tabellen fuer einen Shop mit Kunden, Produkten und Bestellungen.
- Erklaere, warum Bestellungen und Produkte eine n:m-Beziehung haben koennen.
- Erstelle eine Zwischentabelle fuer User und Kurse.
- Markiere in deinem Modell alle Primaer- und Fremdschluessel.
- Schreibe zu jeder Beziehung, ob sie 1:1, 1:n oder n:m ist.