Я создаю календарь, который отображает расписание событий на месяц. Каждый день имеет несколько параметров, которые определяют, можно ли запланировать больше событий на этот день (сколько сотрудников доступно, сколько раз доступно и т. Д.).
Моя база данных настроена с использованием трех таблиц:
- Обычное расписание - используется для создания массива для каждого дня недели, в котором указано, сколько сотрудников доступно, сколько часов они доступны и т. Д.
- Варианты расписания - если для даты существуют вариации, это переопределяет информацию из массива регулярного расписания.
- События - Существующие события, на которые ссылается дата.
На этом этапе код перебирает дни месяца и проверяет две-три вещи на каждый день.
- Существуют ли какие-либо изменения в расписании (государственные праздники, короткие часы и т. Д.)?
- Какие часы / количество сотрудников доступны на этот день?
- (При наличии персонала) Сколько мероприятий уже запланировано на этот день?
Шаг 1 и шаг 3 требуют запроса к базе данных - при условии 30 дней в месяц, это 60 запросов на просмотр страницы.
Я беспокоюсь о том, как это может масштабироваться, для некоторых пользователей я не представляю, что это будет большой проблемой, но если 20 человек попытаются загрузить страницу одновременно, то она перейдет к 1200 запросы ...
Будем весьма благодарны за любые идеи или предложения о том, как сделать это более эффективно!
Спасибо!