I would not call this a routing table.
Routes have way points and tracks, which are subject to change. For example, the route from KFJK to KORD is COATE Q436 EMMMA WYNDE5
(these are waypoints and WYNDE5 is the arrival at O'Hare).
Your diagram is more of a destinations table. Most flights are single leg ("direct") and for multi-leg flights you need to track those separately.
I would track flights (which have a unique number) instead of your "route number" variable. A flight can be flown by different equipment. For example, the same flight can be flown in a 777 or a A380.
Many airlines fly the same route but use different flights; each flight consists of the following:
- Unique number
- Aircraft Type
- Origin
- Destination (these can be multiple or intermediate).
The route flown is predefined. Have a look at this table of flights between Kennedy International and Chicago O'Hare.
If you click on the ident column (this is the flight number), you'll see the route flown for that flight.
I would make the following changes:
- Remove 'speed' from the aeroplane table; and rename this table to 'equipment'.
- Rename 'alias' to 'ICAO' and add their ICAO code there (its three letters).
- Airlines don't have routes; so I would rename routes to 'destinations'.
- Airports don't have route numbers; so I'm not sure what that is doing there.
- Airports have two main identifiers, the ICAO identifier code (4-letters) and the IATA identifer (3-letters). I would add both of these.
- I would rename route number to 'flight number', and then add the actual flight number to it; with each leg entered individually. This will take care of your multi-leg (multi-stop) flights.
- I would add a flight_equipment table to have a link between each flight, and which equipment is used. Right now there is no link between the flights and the airplanes.