Lösung: Öffentlicher Verkehr

Crow's-Foot-Diagramm Öffentlicher Verkehr Klicken Sie aufs Bild, um es vergrössert anzuzeigen.

  • linien_id steht in fahrt. Eine Linie hat viele Fahrten, eine Fahrt gehört zu genau einer Linie (1:n).
  • Zwischen linie und haltestelle steht kein Fremdschlüssel. Eine Linie hat viele Haltestellen, und eine Haltestelle wird von vielen Linien bedient (n:m) (z.B. Central in Zürich). Wir lösen das später im Modul mit einer Zwischentabelle auf.
Spalte Typ Begründung
fahrt_id, linien_id, haltestelle_id INT Ganzzahlige IDs
datum DATE Nur das Datum ist relevant
abfahrtszeit TIME Nur die Uhrzeit ist relevant
preis DECIMAL(6,2) Geldbetrag, exakt auf zwei Nachkommastellen – kein FLOAT wegen Rundungsfehlern
name, betreiber, ort VARCHAR Textlänge variabel

Fremdschlüssel-Spalte ist angelegt, aber noch ohne FOREIGN-KEY-Constraint – den setzen wir später im Modul. Bie linie und haltestelle gibt es noch keine Fremdschlüssel-Spalte, weil die n:m-Beziehung erst mit einer Zwischentabelle abgebildet werden kann.

CREATE TABLE linie (
  linien_id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(20) NOT NULL,
  betreiber VARCHAR(20)
);
 
CREATE TABLE haltestelle (
  haltestelle_id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(20) NOT NULL,
  ort VARCHAR(20)
);
 
CREATE TABLE fahrt (
  fahrt_id INT AUTO_INCREMENT PRIMARY KEY,
  datum DATE,
  abfahrtszeit TIME,
  preis DECIMAL(6,2),
  linien_id INT
);
  • de/modul/m290_guko/learningunits/lu06/loesungen/case_oev.txt
  • Zuletzt geändert: 2026/09/20 22:16
  • von gkoch