Which leads to: why in the hell does your schema allow for a passenger to occupy more than one seat at a time?
Given a certain level with the airline, United for example blocks the seat right next to you to offer you extra space (this can be overruled if the plane gets too packed). Thus, one passenger may be linked to more than one seat.