PHP / MySQL讲座分配

时间:2012-04-26 11:30:47

标签: php mysql

我正在使用PHP,MySQL来开发一个在教育机构中使用的网站。

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

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

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

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

还有其他聪明的方法吗?

谢谢

1 个答案:

答案 0 :(得分: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替换为时间范围值。

希望这有帮助

编辑: 此查询对模式中这些列的列和数据类型进行了若干假设 - 不要只复制&amp;粘贴并期望它第一次工作:)