首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >主题例程生成器的逻辑(PHP)

主题例程生成器的逻辑(PHP)
EN

Stack Overflow用户
提问于 2012-09-24 15:19:17
回答 1查看 809关注 0票数 1

我正在开发一个php应用程序来管理日常的科目和我的大学教师的时间安排。然而,我无法理解合理的时间管理背后的理念(逻辑)。

课程时长50至100分钟,由早上7时至下午2时30分。

我希望我的申请按科目、学期和年份分配老师,科目也按年和学期分配。在分配老师的过程中,时间不能冲突。

现在,我已经为我的应用程序设置了基本的表,如下所示

用于管理员登录的Admin users表:

1) id 2)用户名3)密码

主题表

1)身份2)姓名3)年级4)学期5) theory_marks 6) practicle_marks

教师表

1)id 2)姓名3)职位4)subject_id 5)teacher_time 6)年份(以第1年、第2年或第3年为准)7)日(星期日、星期一等)

我的第一个想法是非常基本的,只为day分配一个不同的表,它将包括列作为day名称,以及标志和主题id,以了解该主题的day是活动的还是非活动的。时间在不同的表中,列名为7am、730am等。然而,这也不能解决赋值标志的逻辑,因为一些主题将是100分钟长,而另一些主题将仅为50分钟。

我怎样才能做到这一点呢?现在,我对如何管理学科和教师的时间毫无头绪。求求你,任何帮助都会很好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-24 15:53:48

所有的课程都在早上7点到下午2点半之间,我们说的是7.5小时。这是450分钟。现在有一个缺失的输入:课程可以安排在7-2:30之间的任何时间?或者只在特定的时间,比如:上午7点,8点,...,下午1点?

为简单起见(也是为了让它有意义),我将假设一节课只能在特定的时间进行。

因此,现在,当您想要调度一个新类时,您必须调用如下所示的PHP函数:

代码语言:javascript
复制
function schedule_class($teacher_id, $subject_id, $day, $hour, $length){
    ...
}

这个班级将首先从数据库中SELECT当天该教师在以下时间范围内授课的所有班级:

[$hour - $length, $hour + $length]

只有当你得到一个空的resultset时,你才可以继续使用INSERT

否则,您应该输出到屏幕上,如下所示:

代码语言:javascript
复制
"Class <$subject_name> cannot be scheduled at <$day>/<$hour> 
 since it overlaps with <$subject_name of the conflict-class>"

另外,我会采纳@Havelock的建议,将subjectsteachers分开。

此外,我将在subjects表中添加字段start_timeend_time,这样您就可以更容易地检查两个类是否存在冲突。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12560474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档