У меня есть список событий, для которых я хочу сохранить время начала и окончания в базе данных SQL. Подвох заключается в том, что некоторые события происходят только в течение одного дня, тогда как другие события происходят в течение нескольких дней. Иногда события происходят только один раз в день, а другие случаются несколько раз (дополнительные пояснения см. В примерах ниже).
Как настроить таблицу Events
для эффективного хранения всех версий дат и времени начала и окончания?
Пример данных, которые необходимо сохранить в таблице:
Event Name | # of Participants | Times and Dates
==========================================================================================================
Three-legged-race | 14 | 08:00 - 09:30 on Mar 23
------------------------------------------------------------------------------------------------------
Pie/Hot Dog Eating Contests | 9 | 12:00 - 14:00 and
| | 15:30 - 17:30 on Mar 23
------------------------------------------------------------------------------------------------------
Decathlon | 37 | 10:00 - 14:00 on Mar 23
| | 11:00 - 16:00 on Mar 24
------------------------------------------------------------------------------------------------------
Daily Opening/Closing Ceremonies | 100 | 07:50 - 08:00 and
| | 17:30 - 17:40 on Mar 23
| | 07:50 - 08:00 and
| | 17:30 - 17:40 on Mar 24
<ч />
В качестве примечания, я согласен с сохранением даты и времени в формате Unix Datetimes, если это необходимо, но я бы предпочел хранить значение по отдельности, если это необходимо (для упрощения доступа / изоляции / использования в дальнейшем).
Edit:
Я забыл добавить, что хотел бы, чтобы решение содержалось в одной таблице. Я не хочу использовать SQL joins
или foreign keys
для объединения нескольких таблиц (например, таблица Events
с таблицей EventsTime
).
Редактировать # 2:
... и я надеялся только на два или около того столбца (не start_datetime1
, end_datetime1
, start_datetime2
, end_datetime2
и т. Д.).