0

我正在使用 PHP、MySQL 开发一个用于教育机构的网站。

其中一个功能是在创建批次时分配讲座。为了将讲座分配到起始批次,系统将根据他们的可用性和资格提示可用的讲座。然后课程协调员将做出决定。

我的问题是如何在给定时间段的特定工作日检查讲座的可用性。(时间段不同而不是固定持续时间)

我打算将讲座时间表保存在一个表格中,其中显示了 Lecture_Id、Batch_Id、day、start_time、end_time、start_day、end_day。

然后在检查可用性时,我需要编写一个复杂的查询来检查可用的 Lecture_Id。我还想不通。

有没有其他聪明的方法来做到这一点?

谢谢

4

1 回答 1

0

您建议存储信息的方式是我想到的第一种方式 - 虽然复杂的查询并不是那么糟糕。

因此,如果我理解正确,您将讲座存储在另一个表中,与您的 Lecture_schedules 表具有一对多的关系?如果是这样,这将获得给定时间范围内的讲座详细信息。

像这样的东西:

SELECT * FROM lecture_schedules 
         INNER JOIN lectures USING(lecture_id) 
         WHERE start_day<=DAY(yourstarttime) AND end_day>=DAY(yourendtime) 
         AND start_time<=yourstarttime AND end_time>=yourendtime;

请注意,您将需要编辑表名和列名以反映您的实际架构,并将 和 替换yourstarttimeyourendtime时间范围值。

希望这可以帮助

编辑:此查询对架构中这些列的列和数据类型做了几个假设 - 不要只是复制和粘贴并期望它第一次工作:)

于 2012-04-26T11:51:41.113 回答