Case Study / 2024

Relationales Datenbank-Design für eine Airport-Ticketing-Plattform

SQL-Server-Schema für Passenger-Management, Flugplanung, Reservierungen, Ticketing, Gepäck und ergänzende Services.

3 min Lesezeit

AirWave Express Ticketing System Thumbnail mit Flugbahn und Flugzeug

Das Schema ist das Rückgrat.

Airport-Ticketing-Systeme sitzen an der Schnittstelle von rund einem Dutzend Workflows, die alle konsistent bleiben müssen: Passagier-Datensätze, die sich über Reservierungen hinweg aktualisieren, Flugpläne, die sich ändern, während Tickets bereits ausgestellt sind, Gepäcktracking, das am richtigen Passagier und Flug hängen muss, ergänzende Services (Mahlzeiten, Seat-Upgrades), die korrekt abgerechnet werden müssen, auch wenn die zugrundeliegende Buchung modifiziert wird.

Das Schema ist das Rückgrat von all dem. Falsch gemacht, und jeder Workflow obendrauf wird auf eine andere Art korrumpiert.

Sieben Entitäten, Integrität per Konstruktion.

Sieben Kern-Entitäten: Employee, Passenger, Flight, Reservation, Ticket, AdditionalServices, Baggage. Jede hat einen sauberen Primary Key, der über eine SQL-Server-Sequence generiert wird (z. B. EmployeeSeq kombiniert mit dem Trigger trgGenerateEmployeeID). Foreign Keys erzwingen die Beziehungen, die dauerhaft halten müssen: ein Ticket kann nicht ohne seine Reservation existieren, eine Reservation nicht ohne Passenger und Flight.

Constraints erledigen den Rest. CHECK-Constraints auf Datumsreihenfolge (Departure kann nicht vor Arrival liegen), NOT NULL auf jedem Feld, das in einem echten Ticketing-Workflow nie optional sein darf, UNIQUE-Constraints auf den Dingen, die eindeutig sein müssen (Reisepassnummern, Flugcodes pro Datum).

Was ausgeliefert wurde.

7 Entitäten
zentraler Ticketing-Bereich
Sequences
+ Trigger für ID-Generierung
FK / CHECK
NOT NULL · UNIQUE
Projektbericht
Design-Rationale enthalten

Vollständiges SQL-Server-Schema mit sieben Tabellen, automatisierter ID-Generierung über Sequences und Trigger, vollständiger referenzieller Integrität über Foreign Keys und Constraint-Abdeckung über den gesamten operativen Bereich. Das Repository enthält das Schema-Skript und einen Projektbericht, der die Design-Rationale durchgeht.

Erkenntnisse.

Auto-generierte IDs über Sequences plus Trigger sind eleganter als der IDENTITY-Column-Ansatz, wenn man IDs braucht, die einem bestimmten Format oder Naming-Pattern folgen. Einmal eingerichtet, läuft jedes INSERT einfach. Der Trigger erledigt die Arbeit, die sonst die Anwendung übernehmen müsste, und der Vorteil entsteht auf Datenbankebene.

→ GitHub Repository