Booking reservation application - appeal for ideas.
Hi y'all,
I'm looking for ideas on how to implement a particular type of web
application, which affects situations such as theatre ticket booking.
In this particular application there are a number of houses for rent,
each of which has varying numbers of beds/bedrooms and costs a
different amount to rent (they are for exhibitors at an exhibition).
Now, at on stage near the beginning of the process, the user is going
to say, I'd like house "A1" say. So at that point, I need to "reserve"
this house for this prospective renter. The user then has to register
all the members of staff that they intend to have staying at the
house, along with their requirements. Finally, they pay and all is
signed and sealed.
However, at any time during the process, they may decide not to
complete. So I'm left with a house reserved for a user that has gone
away, never to return.
One option I am considering is to reserve the house for a period of
time (say 30 minutes) and if they haven't completed the transaction in
that time to put the house back in the pool. I've seen this sort of
behaviour on a theatre ticket booking site where, if you run through
the booking process to get details on what is available, you have to
effectively reserve some seats. When you then go back to try to book
them once you have decided what you want, they are no longer
available, but re-appear later. My implementation would at least
ensure that the house reserved house is available to the person who
booked it.
However, we then have the problem of the 30 minutes expiring whilst
they were entering their card details and being snapped up by someone
else in the meanwhile, so that having gone through the whole process
they fail at the last hurdle. I could of course extend the reservation
period each time they submitted a portion of the form. (I would
obviously be using failsafe table update mechanisms - transactions/
table locking/where clause checks).
So, I was wondering whether anyone had any good advice on how to
implement this type of process?
TIA
Regards
Paul
|