de:modul:m290_guko:learningunits:lu06:loesungen:case_eishockey

Dies ist eine alte Version des Dokuments!


Lösung: Eishockeyverein

Crow's-Foot-Diagramm Eishockeyverein Klicken Sie aufs Bild, um es vergrössert anzusehen.

  • block_id steht in spieler_in. Ein Block hat viele Spieler:innen, eine Spielerin gehört zu genau einem Block (1:n) – der Fremdschlüssel steht auf der „viele“-Seite.
  • team_id steht in block. Ein Team hat viele Blöcke, ein Block gehört zu genau einem Team (1:n).
  • trainer_id steht in team (1:1-Beziehung). Ein Team kann bereits existieren, bevor ihm ein Trainer zugeteilt ist – die Trainerfrage klärt sich oft erst später in der Saison. Die Seite, die auch ohne Partner existieren kann, bekommt den Fremdschlüssel.

1:1 in SQL wirklich erzwingen: Der Fremdschlüssel allein reicht nicht aus – ohne zusätzliche Regel könnte derselbe Trainer zwei Teams zugewiesen werden. Dafür bräuchte trainer_id in der Tabelle team zusätzlich den Constraint UNIQUE.

Spalte Typ Begründung
spieler_id, block_id, team_id, trainer_id INT Ganzzahlige, automatisch vergebene IDs
rueckennummer INT Es wird zwar nicht damit gerechnet, aber Rückennummern sind reine Ziffern ohne führende Nullen – INT ist hier vertretbar
position, name (überall) VARCHAR Textlänge variabel
altersklasse VARCHAR(5) Kurze Codes wie „U18“, „U21“ passen knapp – bewusst kurz gehalten
bezeichnung VARCHAR(20) Kurzer Blockname wie „1. Block“

Fremdschlüssel-Spalten sind angelegt, aber noch ohne FOREIGN-KEY-Constraint – den setzen wir später im Modul.

CREATE TABLE trainer (
  trainer_id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(50) NOT NULL
);
 
CREATE TABLE team (
  team_id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(20) NOT NULL,
  altersklasse VARCHAR(5),
  trainer_id INT
);
 
CREATE TABLE block (
  block_id INT AUTO_INCREMENT PRIMARY KEY,
  bezeichnung VARCHAR(20),
  team_id INT
);
 
CREATE TABLE spieler_in (
  spieler_id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(50) NOT NULL,
  rueckennummer INT,
  POSITION VARCHAR(20),
  block_id INT
);
  • de/modul/m290_guko/learningunits/lu06/loesungen/case_eishockey.1789934726.txt.gz
  • Zuletzt geändert: 2026/09/20 22:05
  • von gkoch