加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

使用PHP / MySQL调度脚本-逻辑帮助

发布时间:2021-01-18 16:09:38 所属栏目:编程 来源:网络整理
导读:我正在探求一个小的剧本,用户可以在个中插入他们的“时刻表”.可是,我必要一些辅佐来确定怎样建设数据库布局以及如安在数据库中输入变乱的“时刻”的逻辑. 可是,必要留意的一件事是,当用户输入其“打算”时,他们将不会输入确切的日期.相反,他们将输入“礼拜

我正在探求一个小的剧本,用户可以在个中插入他们的“时刻表”.可是,我必要一些辅佐来确定怎样建设数据库布局以及如安在数据库中输入变乱的“时刻”的逻辑.

可是,必要留意的一件事是,当用户输入其“打算”时,他们将不会输入确切的日期.相反,他们将输入“礼拜几”.有点像“按期”约会.

譬喻,用户A可以输入以下时刻表:

MWF-8:00 am-10:00 am
MW-2:00 pm-3:00 pm
等等…

如您所见,我正在探求一种行使通用“礼拜几”的要领,而不必行使确切的日期.

思量到这一点,最好的要领是将其存储在数据库中,由于最终我也许会“查询”数据库以搜刮可用时刻.

我应该输入毫秒照旧秒?礼拜日的12:00是“ 0”吗?

任何提议都很好.

感谢!

最佳谜底 起首,MySQL包括一个time data type.我凶猛提议您操作它.

无论怎样,对付您的表(这是学术布置,但合用沟通的根基头脑):

DaysOfWeek
----------
DowID int
DayOfWeek varchar(10)

Users
------------------------
UserID int autoincrement
UserName varchar(50)
PassHash varbinary(100)
FirstName varchar(50)
LastName varchar(50)
DOB datetime

Semesters
----------------------------
SemesterID int autoincrement
SemesterName varchar(50)
SemesterNumber int
AcademicYear int
CalendarYear int

Classes
-------------------------
ClassID int autoincrement
ClassName varchar(50)
ClassCode varchar(25)

Schedule
----------------------------
ScheduleID int autoincrement
UserID int
SemesterID int
DowID int
ClassID int
BeginTime time
EndTime time

此刻,您必要做的只是看看或人在礼拜一到1到2之间是否有空:

select
    count(*) as classes
from
    schedule sch
    inner join users u on
        sch.userid = u.userid
    inner join semesters sem on
        sch.semesterid = sem.semesterid
where
    u.username = 'rmcdonald'
    and sem.academicyear = 2009
    and sem.semesternumber = 1
    and sch.dowid = dayofweek($mytime)
    and $mytime between sch.begintime and sch.endtime

将$mytime替代为您在此处搜查的任何时刻.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读