为类的调度设计数据库模式

时间:2011-12-07 22:44:38

标签: sql database-design

我正在尝试设计一个数据库模式来模拟大学的课程安排。通常类运行MWF或TuTh。实现将使用MySQL完成。设计表格以处理日期/时间类别的最佳方法是什么?我目前的表格如下:

Time
  int TimeID (primary key)
  Time ClassStartTime
  Time ClassEndTime
  int DaysOfWeekID (foreign key)

DaysOfWeek
  int DaysOfWeekID (primary key)
  varchar DaysOfWeek

上面的Time表将链接到TimeID上的'Class'表。我觉得有更好的方法可以做到这一点,特别是在处理一周的日子时。当我计划用数据库实现日历时,有一个专门的“星期几”类型将更好地在前端解析。有什么建议?提前致谢

2 个答案:

答案 0 :(得分:0)

通过这种方法,课程可以从一周中的任何一天开始,不同的几周可以持续到不同的时间。某些类具有运行MWRF或MTWF的“LAB”。星期二/星期四的实验室。这种方法的缺点是你必须记录每一天的开始/结束时间。

Class
  ClassID

DaysofWeek
DaysOfWeekID

ClassHours
ClassID
DaysofWeekID
StartTime
EndTime

班级的课时数为零或多 课时属于一个且只有一个班级 课时属于一周的一天,一周只有一天 DayofWeek属于零至多课时。

答案 1 :(得分:0)

有很多方法可以对此进行建模。很大程度上取决于数据的样子 - 例如,你说类“通常”运行MWF或TuTh - 很多都取决于你打算用它做什么。

这样的事可能有用:

Class
  Id int (PK)
  StartTime Time
  EndTime Time

Class_DayOfWeek
  ClassId int (FK)
  DayOfWeekId int (FK)

DayOfWeek
  Id int (PK)
  Name varchar -- Monday, Tuesday, etc.

如果课程在不同日期的不同时间相遇,您需要更进一步。如果你想处理调度资源(如教师和教室),你需要更进一步......但希望这会有所帮助。