【发布时间】:2015-12-22 12:44:18
【问题描述】:
问题 #1:
如何在 MySQL 中以高效的方式设计表
1) Store Opening Time,
2) Break Time and
3) Closing Time in a day
例如,周日:开放时间:上午 7:00,关闭时间:下午 5:00,休息时间开始:下午 1:00,休息时间结束:下午 2:30。
问题 #2:
如何定义查询以在该表中搜索在给定范围内打开/关闭的所有商店。 例如,如果用户尝试在上午 9:00 到 12:00 之间过滤商店的营业时间。由于休息时间或关闭时间可能在该时间范围内,我如何应用此过滤器的查询。
store_id day open_time break_start break_end close_time
1 mon 7:00AM 1:00PM 2:30PM 5:00PM
1 tue 7:00AM 1:00PM 2:30PM 5:00PM
1 wed 7:00AM 1:00PM 2:30PM 5:00PM
1 thu 7:00AM 1:00PM 2:30PM 5:00PM
1 fri 7:00AM 1:00PM 2:30PM 5:00PM
1 sat Closed
1 sun Closed
类似的东西。如果用户使用标准: 开放时间:上午 8:00 至下午 2:00;要搜索商店,那么他必须能够查看在该时间段内打开的所有商店。此时间范围还必须包括商店 open_time。也就是说,根据提供的标准,商店的营业时间为上午 7:00、上午 8:00 和上午 9:00,直到下午 2:00。
【问题讨论】:
-
到目前为止你得到了什么?
-
它是每次商店打开/关闭时填充的实际打开和关闭的时间表或列表吗?无论如何,您的商店似乎有一个状态(open、close、closed-for-a-break,如果您需要,可能是第三个状态),它随时间变化,所以它有开始和结束。
-
它是实际开盘和关盘的列表,包括时间范围内的休息时间。
-
请提供一些样本虚拟数据。