Как создать скрипт доступности с использованием PHP и MySQL на основе записей расписания? - PullRequest
0 голосов
/ 08 июля 2011

Я пытаюсь разработать инструмент для клиента, который возвращает всех доступных пользователей за определенный день и время недели. Например, пользователь будет вводить свое текущее еженедельное расписание, а база данных будет хранить это расписание. Каждая строка этой таблицы будет содержать имя пользователя, день недели, время начала недоступности и время окончания недоступности. Если бы клиент должен был ввести день, время начала и время окончания, я бы хотел, чтобы скрипт возвращал всех пользователей, которые доступны для данного времени. У вас есть идеи, как подойти к этой проблеме? В частности, я ищу наиболее эффективный способ хранения информации и ее обработки. Любая помощь будет принята с благодарностью. Вот пример возможной структуры таблицы:

UserName     DayOfWeek     StartTime     EndTime   //Times when unavailable
jdoe         Mon           09:30:00      10:30:00
jdoe         Mon           11:30:00      12:45:00
jdoe         Tue           14:50:00      16:20:00
hsmith       Wed           16:20:00      17:55:00           

1 Ответ

0 голосов
/ 08 июля 2011

Сохраните время начала и окончания как даты, например 2011-01-01 09:00:00, тогда для доступности вы можете сделать что-то вроде

SELECT *
  FROM userTable
  WHERE userName NOT IN (SELECT userName
                           FROM userTable
                           WHERE #{date to check} BETWEEN startTime AND endTime)

Я не пробовал это, и есть некоторая нормализация, которая должна быть выполненаотправная точка

...