Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
modul:m290_guko:learningunits:lu08:theorie:b_fk-grundlagen [2025/10/18 23:03] gkochmodul:m290_guko:learningunits:lu08:theorie:b_fk-grundlagen [2025/10/20 14:17] (aktuell) gkoch
Zeile 56: Zeile 56:
  
 **Auszug:** **Auszug:**
-{{ :modul:m290_guko:learningunits:lu08:theorie:all_in_one_table_1.png?nolink&600 | Tabelle mit allen Posts}}+{{ :modul:m290_guko:learningunits:lu08:theorie:all_in_one_table_1.png?nolink&900 | Tabelle mit allen Posts}}
  
 <WRAP box round 80% center> <WRAP box round 80% center>
Zeile 106: Zeile 106:
 //Gleicher Autor, unterschiedliche E-Mail → Daten sind inkonsistent.// //Gleicher Autor, unterschiedliche E-Mail → Daten sind inkonsistent.//
  
- +<WRAP center tip round 80%> 
-==== Warum eine N:M-Beziehung (Posts ↔ Kategorien) auflösen? ==== +[[https://www.youtube.com/watch?v=W4UkIK2BwS8|Beziehungen in relationalen Datenbanken (1:nn:m, 1:1) – einfach erklärt]]((Patrick Boekhoven / YouTube)) -> (9:02deGrundlagen zu PK/FK und warum wir Beziehungen brauchen; zeigtwie man 1:n modelliert und warum n:m ohne Zwischentabelle nicht direkt geht
-In einer relationalen Tabelle beschreibt **jede Zeile genau ein Ding** (entweder einen //Post// oder eine //Kategorie//). Ein Fremdschlüssel in einer Zeile kann deshalb nur auf ein anderes Ding zeigen. +</WRAP>
- +
-Bei N:M gilt jedoch: Ein Post gehört zu //0…n// Kategorien und eine Kategorie enthält //0…n// Posts. +
-→ Ein einzelnes FK-Feld reicht dafür nicht aus: +
- +
-  * FK in ''posts'' nur als ''category_id''Pro Post wäre nur eine Kategorie möglich. Mehrere Kategorien erzwingen Duplikate desselben Posts – Änderungen und Löschungen werden fehleranfällig. +
-  * FK in ''categories'' nur als ''post_id'': Pro Kategorie wäre nur ein Post möglich. Dadurch müsste man Kategorien duplizieren – gleiches Problem wie bei obigen Punkt. +
-  * Kommaliste in einer Spalte (z. B. ''Belgien, Städtereise''): In einer Zelle stehen mehrere Werte. Die Datenbank kann nicht prüfen, ob diese Kategorien existieren (kein FK), Abfragen werden unzuverlässig und langsam. +
- +
-**Lösungdie Zwischentabelle ''post_category''.** +
-Wir trennen die Objekte (''posts''''categories'') und speichern **jede einzelne Zuordnung** als eigene Zeile in ''post_category'' – genau **ein Paar** (''post_id''''category_id'') pro Zeile. +
-So bleibt jede Beziehung eindeutig modelliert, Primärschlüssel bleiben eindeutig, Fremdschlüssel sind prüfbar, und Abfragen bleiben klar und performant+
- +
- +
  
 ==== Ausblick ==== ==== Ausblick ====
 Auf der nächsten Seite bauen wir genau dieses Mehrtabellen-Schema **mit Fremdschlüsseln** auf und füllen es mit den obigen Reiseblog-Beispieldaten. Auf der nächsten Seite bauen wir genau dieses Mehrtabellen-Schema **mit Fremdschlüsseln** auf und füllen es mit den obigen Reiseblog-Beispieldaten.
  
  • modul/m290_guko/learningunits/lu08/theorie/b_fk-grundlagen.1760821397.txt.gz
  • Zuletzt geändert: 2025/10/18 23:03
  • von gkoch