在MySQL中存储每日事件的开始和结束时间

时间:2017-02-01 12:41:43

标签: mysql

我目前有一个存储事件的事件表以及事件发生的星期几,表格看起来像这样。

EventID  Title       Mon Tue Wed Thu Fri Sat Sun
1        EventName   1   1   0   0   1   0   0   

我希望能够为每个事件添加START和END时间,通常我会添加两个额外的列,例如StartTime和EndTime,但是开始和结束时间通常在一周中的每一天都不同。 / p>

设置表格以实现此目的的最佳方法是什么?

由于

2 个答案:

答案 0 :(得分:0)

我想出了两个解决方案:

解决方案1:单独表

创建另一个表,其中包含事件ID和星期几作为主键,每个表都有START和END

 EventID  Day  Start  End

优点:如果事件是"稀疏"没有空,没有空间。 缺点:需要加入

解决方案2:列

看起来像这样:

EventID  Title       Mon Tue Wed Thu Fri Sat Sun MonStart MonEnd TueStart TueEnd ... SunStart SunEnd

优点:如果事件是"密集",则不需要加入

答案 1 :(得分:0)

You should add Table Event_Details with below schema

EventDetailsID
EventID (Foreign Key)
Mon_Timings
Tue_Timings
Wed_Timings
Thrus_Timings
Fri_Timings
Sat_Timings
Sun_Timings

Sample data entry for the Event_Details table should be like below


EventDetailsID = 1
EventID  = 1
Mon_Timings = 08:00-20:00  
Tue_Timings = 09:00-19:00
Wed_Timings = NULL
Thrus_Timings = NULL
Fri_Timings = 10:30-21:30
Sat_Timings = NULL
Sun_Timings = NULL

At time of saving data you can have StartTime-EndTime format
and when you want to retrieve you can split by '-'

This will have less number of rows , which will retrieve data faster