Dies ist eine alte Version des Dokuments!
Lösung: Postzustellung und Post-Briefkästen
Fremdschlüssel
- gebiet_id steht in briefkasten. Ein Postgebiet enthält viele Briefkästen, ein Briefkasten gehört zu genau einem Gebiet (1:n).
- poestler_id steht in postgebiet (1:1-Beziehung). Ein Postgebiet kann bereits existieren, bevor ihm eine Person zugeteilt ist – dieselbe Logik wie beim Team ohne Trainer.
1:1 in SQL wirklich erzwingen: Der Fremdschlüssel allein reicht nicht aus – ohne zusätzliche Regel könnte dieselbe Person zwei Postgebieten zugewiesen werden. Dafür bräuchte poestler_id in der Tabelle postgebiet zusätzlich den Constraint UNIQUE.
Im Prinzip wäre hier eine Korrektur nötig: Der plz_bereich CHAR(9) speichert eine Spanne wie „6000-6100“ in einer einzigen Zelle. Das verletzt die Regel „eine Zelle, ein Wert“: Man kann so weder prüfen, ob eine bestimmte PLZ zu einem Gebiet gehört, noch sinnvoll sortieren. Bessere Alternative: plz_von CHAR(4) und plz_bis CHAR(4) als zwei Spalten
Datentypen
| Spalte | Typ | Begründung |
|---|---|---|
| briefkasten_id, gebiet_id, poestler_id | INT | Ganzzahlige IDs |
| standort | VARCHAR(100) | Textbeschreibung wie „bei der Bushaltestelle“ |
| leerungszeit | TIME | Nur die Uhrzeit ist relevant, kein Datum (weil üblicherweise an mehreren Wochentagen zur gleichen Zeit geleert wird) |
| name | VARCHAR | Textlänge variabel |

