gpt4 book ai didi

php - MySQL通过时间间隔搜索

转载 作者:行者123 更新时间:2023-11-29 01:43:04 25 4
gpt4 key购买 nike

系统是这样的。导师会提供他们的空闲时间(周一至周日)以及他们当天有空的时间范围 (0700 - 1400)(即:早上 7 点 - 下午 2 点)。

我正在尝试找出存储和搜索此信息以查找可用导师的最佳方法。只需在每日系统上进行搜索(即:星期几 - 周一、周二、周三等)。

我计划的基础设施:

//Tutor Availability
---------------------------------------------------------------------------
tutorID | monday | tuesday | wednesday | thursday | friday |
---------------------------------------------------------------------------
27 | 0700-1200 | NULL | 1400-1800 | NULL | NULL |
---------------------------------------------------------------------------
35 | NULL | 1400-1600 | NULL | NULL | 1100-1900 |

//Scheduled tutor sessions
------------------------------------
tutorID | day | time |
------------------------------------
27 | monday | 0700-0900 |
------------------------------------
35 | friday | 1300-1500 |

查询:SELECT tutorid FROM tutoravailability WHERE 'monday'=... 在 0900-1100 之间可用,并且不在预定的辅导类(class)中。

我一直在寻找如何在 MySQL 中搜索(和存储)这些时间间隔。这是存储一天 24 小时的时间间隔的最佳方式吗?甚至可以在这些间隔之间进行搜索吗?我是以错误的方式接近这个吗?感谢任何见解。

更新的基础架构

//Tutor Availability
-----------------------------------------------------
tutorID | day | start_time | end_time | PK |
-----------------------------------------------------
27 | mon | 0700 | 1200 | 1 |
-----------------------------------------------------
27 | fri | 1400 | 1800 | 2 |
-----------------------------------------------------
35 | tue | 1100 | 1600 | 3 |
//Scheduled tutor sessions
--------------------------------------------------------
tutorID | day | start_time | end_time | PK |
--------------------------------------------------------
27 | mon | 0800 | 1000 | 1 |
--------------------------------------------------------
27 | fri | 1600 | 1800 | 2 |

因此,有了这个系统,搜索可用时间将简单。但是,我仍然不知道如何将可用性与预定类(class)进行比较以确保不重叠。

SELECT tutorID 
FROM tutoravailability WHERE day = 'fri'
AND start_time <= '1400'
AND end_time >= '1530'

现在我不明白如何将此查询与 Scheduled tutor sessions 表进行比较以避免重复预订。

最终更新

为确保它们与预定导师 session 不重叠,我将使用 MySQL BETWEEN 子句来搜索开始和结束时间。

最佳答案

如果您使用两列存储时间间隔,那么使用 sql 查询执行搜索会容易得多。

即tutorID, day, startTime, endTime

关于php - MySQL通过时间间隔搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14331936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com