Таблица доступности / вид для бронирования зала - PullRequest
0 голосов
/ 26 октября 2009

Я делаю заявку на бронирование зала.

В заведении много залов.

Существует фиксированное время начала и окончания для всех залов, в которые должны попасть слоты.

Они определены в таблице Hall с полями HallID, OpeningTime, ClosingTime.

Таблица HallBooking содержит информацию о бронировании. Поля: HallID, Duration, StartTime, EndTime.

Бронирование не основано на заранее определенных слотах. Время начала и время окончания могут быть где угодно между Залом открытия и временем закрытия. Критерий состоит в том, что в зале должен быть свободный слот где-нибудь в этот день для размещения Длительности.

Итак, итоги:

Стол Холл (HallID, OpeningTime, ClosingTime) Стол HallBooking (HallID, Длительность, StartTime, EndTime)

Входные данные для поиска бронирования: дата, продолжительность

Я использую SQL Server 2005. Как получить таблицу / представление доступности, в котором показаны все доступные слоты во всех залах? Я думаю, что если я смогу получить эту таблицу / представление доступности, я смогу оттуда ее получить.

1 Ответ

0 голосов
/ 26 октября 2009

Я бы так и сделал. Я бы создал таблицу доступных слотов для каждого зала (по часам или получасу или по минимальному времени, которое вы запланировали). Тогда я бы пометил их как использованные, когда запланировано время. Я бы изначально заселился на следующий год или через шесть месяцев или как бы далеко вы ни планировали. Затем каждую неделю я запускал автоматизированную работу, которая заполняла слоты на следующие недели на конец периода. Итак, я заселился с 1 августа 2009 года по 1 августа 2010 года, через неделю автоматизированное задание добавит слоты на 2-8 августа 2010 года.

Причина, по которой я бы сделал это таким образом, заключается в том, что запрос к таблице открытых слотов выполняется очень быстро, а вычисление открытых слотов по запланированным слотам не так быстро.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...