Según yo entiendo, hay aquí una confusión con el término "confirmación".
Por un lado está la confirmación que un cliente puede hacer de las reservaciones que haya hecho previamente. Esto es, hoy reservo tres habitaciones y pasado mañana confirmo la reservación. En ese caso, aplica lo dicho por egostar y Mick.
Pero, por otro lado, está la confirmación de la operación al momento de reservar. Es decir, yo entro al sistema, digo que quiero reservar tres habitaciones y oprimo el botón Aceptar (commit) o Cancelar (rollback), es decir,
confirmo que reservo las habitaciones. Me parece que es a esto último a lo que se refiere gluglu.
En todo caso, aplica lo que comenta Mick,
la transacción debe durar lo menos posible.
Lo que yo hago en una situación similar- que no igual, pues nada tiene que ver con reservaciones -es:
- Muestro al cliente el número de habitaciones disponibles
- El cliente escoge cuántas habitaciones reserva.
- El cliente oprime Aceptar
- Inicio una transacción
- Resto al número de habitaciones disponibles el número solicitado.
- Consulto el número de habitaciones que queda después de la resta
- Si es negativo quiere decir que alguien más se adelantó, de manera que hago un rollback de la transacción y mando un aviso al cliente.
Desde luego que sería un caso hipersimplificado puesto que las reservaciones no se hacen nada más en cuanto al número de habitaciones, sino también de lapsos de días que se ocuparán, pero el punto es que durante la transacción ya no hay ninguna intervención del usuario y todo se hace en cuestión de milésimas de segundo.
// Saludos