There are many situations where I don't know what kind of isolation I should use in MySQL to avoid using corrupt data.
For example, let's say an application to make reservations for a theater. A user selects a seat and, within a transaction, it is checked that the selected seat is free and, if it is, the reservation is saved in a second step.
It may happen that while is verified that the seat is free and, before saving the reservation, another user reserve it first.
For situations like this and working with MySQL, what isolation level should I use?