? ? ? ?
用户分为管理员用户、教师用户和学生用户。 一个学生有多门课,一门课对应多个学生。
一个教师可以教授多门课程,一门课程可以有多个教授来教授。 管理员可以发布新闻
经过对上述系统功能的分析和需求总结,设计如下数据项: ? 管理员信息:用户名、密码。
? 学生信息: 学生ID、姓名、性别、班级、年龄、学院、所在系 ? 教师信息: 教师ID、姓名、性别、年龄
? 课程信息: 课程ID、名称、上课时间、上课地点、学分、上课教师 ? 班级信息: 班级ID、名称、班主任
? 新闻信息: 新闻ID、新闻标题、新闻内容 4.2.1 概念结构设计
由上章知,系统分为三个子模块:登陆模块,排课模块,选课模块。下面将介绍排课模块与选课模块的结构设计。
排课模块涉及实体及其属性: (1)管理员:用户名,密码;
(2)课程:编号,专业编号,学分,限选性质,教师编号,考察方式,最大选课人数,课程名称,开课院系编号,面向年级;
(3)选课通知:通知编号,通知标题,通知内容,通知时间,是否为必选; (4)选课时段:开始选课时间,终止选课时间。 ER图如图4-2。 时间用户名名称学分考察方式最大选课人数面向年纪 管理员N排课N课程密码地点开课院系图4-2 排课模块ER图 选课模块涉及实体及其属性:
(1)学生:用户名,密码,用户类型,用户编号;
(2)课程:编号,专业编号,学分,限选性质,教师编号,考察方式,最大选课人数,课程名称,开课院系编号,面向年级。
ER图如图4-3。
21
成绩学生M选课图 4-3 选课ER图
N课程 结合两个上述两个ER图,得出总体ER图如图4-4。
选课时段N设置时间N教师N发布1选课通知成绩选课NN排课N课程地点M学生图4-4 选课系统总体ER图 4.2.2 逻辑结构设计
根据以上实体关系分析,设计出本系统的数据库模型,为了满足登陆信息管理,排课信息管理与发布,学生选课信息的管理与操作的需要,设计出14个数据表格。介绍如下:
(1)排课表(Arrange):该表格需记录排课相关信息,包括排课编号,教室编号,上课时间,课程设置号等。
(2)院系信息表(DeptInfo):该表记录了开课院系的相关信息,包括院系编号,院系名称等。
(3)教学楼信息表(BuildingInfo):该表记录了所有教学楼的相关信息,包
22
括教学楼编号,教学楼名称。
(4)教室信息表(ClassRoomInfo):该表记录了所有可供上课教室的相关信息,包括教室编号,教室名称,教学楼编号,教室属性等。
(5)备份排课记录表(BackUpArrangeList):该表记录了所有备份表信息,包括表号,备份排课记录ID。
(6)选课时间段信息表(CourseSelectInterval):该表是控制学生选课的关键部分,包括开始选课时间与终止选课时间。
(7)选课通知表(CourseSelectNotice):该表的目的是为排课者及时发布选课信息而建的,包括通知编号,通知标题,内容,时间,还有是否为关键通知。
(8)选课信息表(CourseSelect):当学生成功选课后,会在该表存储相应的信息,包括排课标号,学生编号。
(9)开课信息表(CourseSettingInfo):该表列出了选课表的详细信息,包括课程编号,面向专业号,学分,限选性质,教师编号,考察方式,备注,最大限选人数,课程编号,开课院系号,面向年级。
(10)课程详细信息表(CourseInfo):该表记录课程的内容的详细介绍,包括课程编号,课程名称,课程介绍。
(11)教师返汇信息表(FeedBack):该表记录教师关于排课的返汇信息,包括返汇信息编号,返汇信息标题,返汇信息内容,教师ID,返汇时间等。
(12)学生信息表(StrudentInfo):该表存储所有在校地学生信息,包括学生学号,姓名,所属院系编号,专业号等。
(13)教师信息表(TeacherInfo):该表记录了所有在校教师的信息,包括教师编号,教师姓名,所属院校编号等。
(14)系统用户信息表(UserInfo):该表记录了所有登陆过本系统的用户信息(教师,学生,管理员),包括用户类型,用户编号,用户名,用户密码等信息。 4.2.3 数据表设计
根据上面的设计,表结构如下: (1)排课表(Arrange)
本表记录排课相关信息,包括排课编号,教室编号,上课时间,课程设置号等,结构如表4.1。
表4.1 Arrange
字段 Arrange_Id ClassRoom_Id Setting_Id Day_Time
说明 排课编号 教室编号 课程设置号 上课时间
类型 Int Int Int Nvarchar(300)
备注 主键,不为空 外键,不为空 外键,不为空
不为空
(2)课程详细信息表(CourseInfo)
该表记录课程的内容的详细介绍,包括课程编号,课程名称,课程介绍。结构如表4.2。
表4.2 CourseInfo
字段 Course_Id Course_Name Introduction
说明 课程设置编号 课程名称 课程介绍
类型 Int Nchar(120) Nvarchar(300)
备注 主键,不为空
不为空 不为空
(3)备份排课记录表(BackUpArrangeList)
该表记录了所有备份表信息,包括表号,备份排课记录ID。结构如表4.3。
23
表4.3 BackUpArrangeList
字段 List_Id Backup_Title
说明 表号 备份排课记录表
类型 Int Varchar(20)
备注 主键,不为空
不为空
(4)开课信息表(CourseSettingInfo)
该表列出了选课表的详细信息,包括课程编号,面向专业号,学分,限选性质,教师编号,考察方式,备注,最大限选人数,课程编号,开课院系号,面向年级。结构如表4.4。
表4.4 CourseSettingInfo
字段 Setting_Id Orient_Dept_Id
Score Select_Limit Teacher_Id Test_Method Comment Selector_No_Limit
Course_Id Dept_ID Grade_ID
说明 课程编号 面向专业编号
学分 限选性质 教师编号 考察方式 备注 最大选课人数 课程编号 开课院系编号 面向年纪
类型 Int Varchar(20)
TinyInt Nchar(4) Varchar(20) Nchar(4) Nvarchar(200) Smallint Char(20) Char(10) TinyInt
备注 主键,不为空 不为空 不为空 不为空 不为空 不为空
默认值为“无”,可为空
不为空 不为空 不为空 不为空
(5)返汇信息表(FeedBack)
该表记录教师关于排课的返汇信息,包括返汇信息编号,返汇信息标题,返汇信息内容,教师ID,返汇时间。结构如表4.5。
表4.5 FeedBack
字段 FeedBack_Id FeedBack_Title FeedBack_Content FeedBack_User_Id FeedBack_Time
说明 返汇信息编写 返汇信息标题 返汇信息内容 用户Id 返汇时间
类型 Smallint Nvarchar(20) Nvarchar(3000) Varchar(20) datetime
备注 主键,不为空
不为空 不为空 不为空 不为空
(6)选课信息表(CourseSelect) 当学生成功选课,会在该表存储相应的信息,包括排课标号,学生编号。结构如表4.6。
表4.6 CourseSelect
字段 Arrange_Id Student_Id
说明 排课编号 学生学号
类型 Int Varchar(20)
备注 不为空 不为空
24
(7)系统用户信息表(UserInfo) 该表记录了所有登陆过本系统的用户信息(教师,学生,管理员),包括用户类型,用户编号,用户名,用户密码。结构如表4.7。
表4.7 UserInfo
字段 UserInfo_Type UserInfo_Id UserInfo_Name Password
说明 用户类型 用户编号 用户名 用户密码
类型 Char(1)
Int Varchar(20) Varchar(20)
备注 不为空 不为空 不为空 不为空
根据以上对各表的分析,可以正确建立数据库,确定各表之间的关系。在建立各表过程中应尽量避免冗余,并且在各个关联表间建立约束,以从数据库本身避免数据冲突,保持数据的完整性与一致性。
4.3 功能设计
由前面的分析可知,系统分为三个子模块:登陆,排课,选课。下面,会根据不同模块,逐个进行功能讲解。
首先是登陆部分: (1)登陆身份验证 本系统中的用户有三类:管理员,教师,学生。当不同的用户登陆到本系统中选择不同的用户类型时,系统会为他们分配不同的权限。管理员的权限是最大的,主要拥有排课,设置选课时段,发布选课信息的权限。教师的主要权限是返汇排课信息。学生的主要权限是进行选课,退课。
(2)修改密码
(3)用户登陆系统后,可以修改原来的密码。 (4)退出
(5)每个用户如单击退出系统,则会退出本系统,用户Session中的信息也会随着删除。
排课部分:
(1)已排排课表
管理员在排课过程中,可以点击已排排课表,来显示已经排好的选课信息,并可对此信息进行增,删,改,查。在管理员提交排课表后,系统会进行检测,以确保排课方案中没有时间冲突,和教室冲突。如果有冲突,系统会提示排课者具体冲突产生的原因,并提示改正。
(2)备份排课表
管理员对排课信息进行修改后,可以点击备份排课表,对新的排课信息进行备份。 (3)导入排课表 管理员可以把以前的排课信息导入到排课表,这样可以增加排课灵活性,和方便性。此外,管理员还可以把以前的排课信息删除。
(4)对未排的课程进行排课 管理员可以对课程信息表,院系信息表,教师表中的信息进行联合查询后,在教学楼信息表中选择相应的教师,并选择相应的时间。在管理员提交排课表后,系统应当确保该排课方案中没有时间冲突和教室冲突。如果有冲突,系统应该提示管理员冲突产生的原因以及冲突的解决方法。
(5)设定选课时间段 管理员可以设定选课时间段。学生只能在此设定的时间段内进行选课。如果学生部在选课时间段内选课,系统会给出相应的提示。
25