Når du har flere værdier i en primærnøgle, skal du referere den anderledes som en fremmednøgle.
Dybest set, når du siger
FlightID char (20) REFERENCES Flight(FlightID) ON DELETE CASCADE,
PostgreSQL kontrollerer for den primære nøgle, som ikke eksisterer (da den primære nøgle på den tabel er (flightid, flightdate)).
Så slip REFERENCES
klausuler, når der refereres til flyvetabellen, og tilføje
FOREIGN KEY (FlightID, FlightDate) REFERENCES Flight (FlightID, FlightDate)
På den måde, du har i nogle af de andre tabeldefinitioner.