What are all the primary keys you are using? There may be a conflict in your use of primary keys.
Secondly, can each train go on only one journey? If not, then I would recommend using the following design:
<station table>
stationid
station_name
<Journey table>
journeyid
trainid
stationid
<train table>
trainid
seat_type
seatno
Please note that I removed journeyid from the train table and added trainid to the journey table. This will allow each train to be associated with more than one journey.
Lastly, this is the design I would use to track seats:
<station table>
stationid
station_name
<Journey table>
journeyid
trainid
stationid
<train table>
trainid
<seats table>
seatid
trainid
seat_type
<seat availability>
seatid
date/time occupied
date/time available
For the last table, if there is no record in that table for a particular seat, then the seat is available and was never occupied. If the most recent record in that table for any particular seat has a null value for available, then the seat is occupied. If the most recent record in that table for any particular seat is not null, then the seat is available.