Нам нужен некоторый код, чтобы знать наверняка, но это действительно зависит от того, как вы обрабатываете слоты. У вас есть фиксированные окна для бронирования (например, четыре 15-минутных окна в час)? Или они произвольны (например, один человек может забронировать с 6:00 до 6:13, а другой - с 6:13 до 7:00)?
Если проблема в ваших запросах, помните, что МЕЖДУ - ваш друг. Фрагмент из моего недавнего ответа :
SELECT * FROM foo WHERE timestamp BETWEEN (NOW() - INTERVAL 5 SECOND) AND NOW()
Так что вы можете сделать что-то подобное, если проверяете, что время забронировано:
SELECT * FROM reservations WHERE $time_to_check BETWEEN start_time AND end_time