Once the customer selects date/time/covers, he should have the possibility to enter the details and finalise the booking.
At the meantime the selected table, should not be visible to other customers.
Superb has this function.
My suggestion is to find the way to create a sort of "phantom table" when the customer select date/time/covers, which remains for 2 minutes invisible to other customers, till the details are entered. If the booking is not finalised in 2 minutes (a countdown would help) the table becomes available again.