Ale*_*rMP 33
构建另一个表,调用它schedules,向shops表主键添加外键,一个Day of week字段time_open,time_closed.数据看起来应该是这样的:
shop_id day_of_week time_open time_closed
1 1 09:00 12:00
1 1 16:00 19:00
1 2 09:00 12:00
1 2 16:00 19:00
1 3 09:00 12:00
1 3 16:00 19:00
1 6 10:00 14:00
2 1 09:00 12:00
2 1 13:00 18:00
Run Code Online (Sandbox Code Playgroud)
这将为您提供构建任何类型的计划的机会,您可以根据需要使用多少个窗口,以及需要多少个例外.它是普遍的,仅限于它希望所有周都相同的事实.不考虑假期,也不考虑有人可能使用的奇数/偶数周时间表.
编辑:
有了朱利安的问题,关于夜间工作的工作时间,我注意到以前的解决方案不是最好的.您不能在20:00开放酒吧,在06:00关闭,并且如果当前时间(02:45)在此区间内,则进行比较,因为它不会.这就是为什么,以方便的度量单位(例如分钟)记录关闭时间,而不是总工作时间是最方便的.
shop_id day_of_week time_open working_time
1 1 09:00 180
1 1 16:00 180
1 2 09:00 180
1 2 16:00 180
1 3 09:00 180
1 3 16:00 180
1 6 10:00 240
2 1 09:00 180
2 1 13:00 300
Run Code Online (Sandbox Code Playgroud)
你使用什么类型的数据库?如果是mysql,请输入"time"类型的字段.然后你可以传递它的时间并对它们进行基本的sql时间操作.这整篇文章假设是mysql.
如果只有一家商店并且您知道商店永远不会增长,那么只需创建一个名为"商店开放时间"的表格.然后,如果要查看存储是否已打开,只需根据数据库中的某个范围检查当前时间.
如果有多个商店,请创建一个名为"times"的表和一个名为"stores"的表.在时间表中,列可以是"打开"和"关闭",其ID为"store_id".商店表也需要一个id.然后,你可以说:
"SELECT open, close FROM times WHERE store_id=x"
Run Code Online (Sandbox Code Playgroud)
这将为您提供与特定商店相关的所有时间范围.
| 归档时间: |
|
| 查看次数: |
7937 次 |
| 最近记录: |