Quando hai più valori in una chiave primaria, devi fare riferimento ad essa in modo diverso come chiave esterna.
Fondamentalmente, quando dici
FlightID char (20) REFERENCES Flight(FlightID) ON DELETE CASCADE,
PostgreSQL cerca quella chiave primaria, che non esiste (poiché la chiave primaria su quella tabella è (flightid, flightdate)).
Quindi rilascia i REFERENCES
clausole quando si fa riferimento alla tabella di volo e aggiungere
FOREIGN KEY (FlightID, FlightDate) REFERENCES Flight (FlightID, FlightDate)
Nel modo in cui hai in alcune delle altre definizioni di tabella.