Получить расписание на текущий день или первый выход - PullRequest
0 голосов
/ 25 апреля 2018

Я создаю приложение для планирования, в котором я назначаю расписания определенным участникам, но эти расписания могут измениться к определенной дате или быть назначены на будущее.

Моя структура базы данных выглядит так:

members table:
------------------------------------
member_id


schedule table:
------------------------------------
schedule_id
schedule_name


assigned_schedules asch table:
------------------------------------
member_id
schedule_id
effective_from
effective_to

Значения assigned_to и assigned_from являются меткой времени Unix.В настоящее время я присоединился к таблицам, но мое предложение where довольно избыточно и содержит ошибки.Я ищу график, назначенный на текущий день для участника, или ближайший график, если он назначен в будущем.Участнику может быть назначено расписание на будущую дату, и оно будет меняться в это время, но я ищу ежедневное представление.

В настоящее время я присоединяюсь ко всем таблицам и получаю предложение where (где ? - это текущая временная метка):

( asch.effective_from <= ? AND ( asch.effective_to IS NULL OR asch.effective_to >= ? ) OR asch.effective_from IS NULL ) XOR ( ( asch.effective_from > ? AND asch.effective_to IS NULL ) XOR asch.effective_from > ? )

assigned_to значение может быть нулевым, что означает, что у расписания нет времени завершения.

Я запрашиваю членовтаблицы, и присоедините назначенные таблицы по элементу members.member_id = assign_schedules.member_id, и присоединитесь к таблице расписаний по адресу asiggned_schedules.schedule_id = schedule.schedule_id

...