【问题标题】:PHP / MySQL lecture allocationPHP/MySQL讲座分配
【发布时间】:2012-04-26 11:30:47
【问题描述】:

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

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

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

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

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

还有其他聪明的方法吗?

谢谢

【问题讨论】:

  • 我建议在 MySQL 中将四个时间字段更改为两个 DATE 字段,这样可以降低复杂性并尽享乐趣!

标签: php mysql


【解决方案1】:

您建议存储信息的方式是我想到的第一种方式 - 不过复杂的查询还不错。

因此,如果我理解正确,您的讲座存储在另一个表中,与您的 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 替换为时间范围值。

希望对你有帮助

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-24
    • 1970-01-01
    • 1970-01-01
    • 2022-11-21
    • 2018-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多