目录
一、 需求分析
前台功能模块
后台功能模块
1.1 功能模块的划分及介绍
1.2 实体及重要属性
1.3 业务流程图
二、概念结构设计
2.1. E-R图的设计
三 、逻辑结构设计
表设计
User1-用户表
Student-学生信息表
College-院系信息表
Attendance personnel 考勤人员表
Class 班级信息表
Activity-活动信息表
meeting-会议信息表
exercise-早操信息表
course-课程信息表
四、物理设计
4.1 数据库的存放位置和存储结构
4.1.1 数据库的存放位置
4.1.2 数据库的存储结构
4.2 索引设计
表2 索引表
五、数据库实施
5.1 创建数据库
5.2 创建表
(1)用户表
(2)学生信息表
(3)College-院系信息表
(4)Attendance personnel 考勤人员表
(5)Class 班级信息表
(6)activity-活动信息表
(7)meeting-会议信息表
(8)exercise-早操信息表
(9) course-课程信息表
六、数据库的试运行
6.1 填入示例数据
视图展示
一、 需求分析
本篇设计文档包括前台功能模块和后台功能模块
前台功能模块
后台功能模块
1.1 功能模块的划分及介绍
本系统包括四个功能模块,注册登录,考勤,后台管理和请假四个功能模块。
1..注册模块:本功能模块设计涉及新用户的注册,和用户的登录,用户分为六大类,学生,任课教师,导员,院系领导,学校领导,系统管理员,他们可以通过自己的学号,和职工号进行注册,后台根据他们的身份不同会赋予不同的权限.
2.考勤模块:本功能模块根据学校的实际需求又分为了四个小的板块
2.1:早操考勤:本模块的功能是学生早操考勤信息的实现,学生可以查看自己本学期的早操出勤情况,导员,院领导,校领导可以查看自己所管辖范围内的学生的早操出勤情况
2.2:开会考勤:本模块的功能是学生开会考勤信息的实现,学生可以查看自己本学期的开会出勤情况,导员,院领导,校领导可以查看自己所管辖范围内的学生的开会出勤情况
2.3:上课考勤:本模块的功能是学生上课考勤信息的实现,学生可以查看自己本学期的上课出勤情况,导员,院领导,校领导可以查看自己所管辖范围内的学生的上课出勤情况
2.4:活动考勤:本模块的功能是学生活动考勤信息的实现,学生可以查看自己本学期的活动考勤情况,导员,院领导,校领导可以查看自己所管辖范围内的学生的活动考勤情况
最终可以根据这四项考勤的情况分别生成每一个院的,每一个班的,每一位同学的量化积分,学校可以根据这个评定优秀院系,优秀班集体,老师可以根据量化积分对学生进行评优评先的推选
3 .请假模块:本模块的功能是在线请假的实现管理,学生有特殊情况导致不能按时上课,上操,开会等可以用到这个功能,这个模块主要设计三大类用户,学生,导员,院系领导用户,学生通过此模块进行在线请假及查看请假记录信息,导员在线审批学生请假,及查看学生请假记录信息,院系领导在线审批学生长时间的请假及查看请假记录信息
4.后台管理模块:本模块的功能实现整个系统数据的同步更新及维护,只涉及系统管理员用户.系统管理员动态管理学生信息,课表安排,会议安排,早操安排,学年安排等,是将数据进行整合推送到前台进行展示,是整个系统实现的基础
1.2 实体及重要属性
●学生:学院,专业,班级,姓名,性别,学号,身份证号等信息。
●考勤人员:部门,姓名、院系,班级,学号,等信息。
●院系:院系名称,院系领导等信息
●班级:年级、班级名称、专业名称等信息
●活动:活动名称、活动时间、活动地点等信息
●会议:会议名称、会议时间、会议地点等信息
●早操:上操时间,上操地点等信息
●课程:课程号,课程名,授课老师,课时,上课时间等信息
通过分析,本系统中各实体之间的联系如下:
●院系-学生:一个院系可以有很多学生,但一个学生只能属于一个院系,所以院系和学生是一对多的关系
●院系-考勤人员:一个院系可以有很多考勤人员,但一个考勤人员只能属于一个院系,所以院系和考勤人员是一对多的关系
●院系-班级:一个院系可以有很多班级,但一个班级只能属于一个院系,所以院系和班级是一对多的关系
●考勤人员-班级:一个考勤人员只能考察一个班级,一个班级可以同时被过个考勤人员考察,所以考勤人员和班级是一对多的关系
●活动-学生:一个活动可以有多个学生参加,一个学生特定时间只可以参加1个活动,所以活动和学生是1对多的关系
●会议-学生:一个会议可以有多个学生参加,一个学生特定时间可以参加1个会议,所以会议和学生是1对多的关系
●早操-学生:一个早操队伍可以有多个学生参加,一个学生特定时间只能在一个早操队伍中
●课程-学生:一门课可以被多个学生一块上课,一个学生特定时间内只可以上一节课,所以课程和学生之间是1对多关系
1.3 业务流程图
全局流程图
请假子模块流程图
二、概念结构设计
2.1. E-R图的设计
三 、逻辑结构设计
表设计
User1-用户表
Student-学生信息表
College-院系信息表
Attendance personnel 考勤人员表
Class 班级信息表
Activity-活动信息表
meeting-会议信息表
exercise-早操信息表
course-课程信息表
四、物理设计
4.1 数据库的存放位置和存储结构
4.1.1 数据库的存放位置
D:\考勤app
4.1.2 数据库的存储结构
创建的数据库为考勤app,有两个文件组,一个是主文件组primary,里面有一个文件,分别是A1,另一个是次要文件组secondary,里面有次要文件A2,最后是日志文件A3 表存放于主文件组中。
4.2 索引设计
表2 索引表
五、数据库实施
5.1 创建数据库
usemaster
go
createdatabase考勤app
onprimary
(
name=a1_mdf,
filename='D:\考勤app\a1.mdf',
size=10mb,
maxsize=50mb,
filegrowth=1mb
),
filegroupsecondry
(
name=a2_mdf,
filename='D:\考勤app\a2.ndf',
size=10mb,
maxsize=50mb,
filegrowth=1mb
)
logon
(
name=a3_ldf,
filename='D:\考勤app\a3.ldf'
)
5.2 创建表
(1)用户表
use考勤app
go
createtableuser1
(
Accountvarchar(20)notnull,
type1varchar(20)notnull,
password1varchar(20)notnull
constraintpk_userprimarykey(account)
)
(2)学生信息表
createtablestudent
(
Studentidvarchar(20)notnull,
snamevarchar(20)notnull,
ssexvarchar(20)notnull,
classvarchar(20)notnull,
colleagevarchar(20)notnull,
specialtyvarchar(20)notnull,
idnumberchar(10)notnull,
midvarchar(20),
aidvarchar(20),
cidvarchar(20),
exercisetimechar(20),
exerciselocationvarchar(20),
jointimechar(20),
wherethrthrattendendancebit,
wheretheleavebit
constraintpk_studentprimarykey(studentid),
constraintfk_meeting_studentforeignkey(mid)referencesmeeting(mid),
constraintfk_activity_studentforeignkey(aid)referencesactivity(aid),
constraintfk_course_studentforeignkey(cid)referencescourse(cid)
)
(3)College-院系信息表
createtablecollege
(
collegenamevarchar(10)notnull,
collegenameleadenumbervarchar(20)notnull,
collegeleadenamevarchar(20)notnull,
classidvarchar(20)notnull,
constraintpk_collegeprimarykey(collegename),
constraintfk_course_collegeforeignkey(classid)referencesclass(classid)
)
)
(4)Attendance personnel 考勤人员表
createtableattendancepersonnel
(
apidvarchar(50)notnull,
departmentnamevarchar(20)notnull,
anamevarchar(4)notnull,
collegenamevarchar(20)notnull,
classnamevarchar(20)notnull
constraintpk_attendancepersonnelprimarykey(apid),
)
(5)Class 班级信息表
createtableclass
(
classidvarchar(20)notnull,
classnamevarchar(20)notnull,
gradeintnotnull,
apidvarchar(20)notnull,
majorvarchar(20)notnull,
constraintpk_classprimarykey(classid),
constraintfk_attendancepersonnel_classforeignkey(apid)referencesattendancepersonnel(apid)
)
(6)activity-活动信息表
createtableactivity
(
aidvarchar(20)notnull,
anamevarchar(20)notnull,
atimevarchar(20)notnull,
alocationvarchar(20)notnull,
constraintpk_activityprimarykey(aid)
)
(7)meeting-会议信息表
createtablemeeting
(
midvarchar(20)notnull,
mnamevarchar(20)notnull,
mtimevarchar(20)notnull,
mlocationvarchar(20)notnull,
constraintpk_meetingprimarykey(mid),
)
(8)exercise-早操信息表
createtableexercise
(
etimevarchar(20)notnull,
elocationvarchar(20)notnull
constraintpk_exerciseprimarykey(etime,elocation),
)
9 course-课程信息表
createtablecourse
(
cidvarchar(20)notnull,
cnamevarchar(20)notnull,
ctimevarchar(20)notnull,
cteachervarchar(20)notnull,
Ckeshi varchar(20) not null
constraintpk_courseprimarykey(cid),(主键创建)
六、数据库的试运行
6.1 填入示例数据
说明:使用insert语句向表中添加必要数据。
use考勤app
go
insertintoactivity(aid,aname,atime,alocation)
values('a1234','操场汇演','0317','操场')
insertintoattendancepersonnel(apid,departmentname,aname,collegename,classname)
values('2002160102025','体育部','薛豪','信息工程学院','大数据02')
insertintoclass(classid,classname,grade,apid,major)
values('1','大数据02','20','2002160102025','大数据')
insertintocollege(collegename,collegenameleadenumber,collegeleadename,classid)
values('信息工程学院','222','刘卫民','1')
insertintocourse(cid,cname,ctime,cteacher,ckeshi)
values('3308','数据库系统原理','0502','李明义','48')
insertintoexercise(etime,elocation)
values('0503','操场')
insertintomeeting(mid,mname,mtime,mlocation)
values('101-101-101','防诈骗宣讲会','0405','大礼堂')
insertintostudent(studentid,sname,ssex,class,colleage,specialty,idnumber,exercisetime,exerciselocation,jointime,wherethrthrattendendance,wheretheleave)
values('2002160102025','薛豪','男','大数据02','信息工程学院','大数据','4107015730','2005','操场','2024','1','0')
insertintostudent(studentid,sname,ssex,class,colleage,specialty,idnumber,mid,jointime,wherethrthrattendendance,wheretheleave)
values('2002160102024','小明','男','大数据02','信息工程学院','大数据','4107015721','101-101-101','0401','1','0')
insertintostudent(studentid,sname,ssex,class,colleage,specialty,idnumber,aid,jointime,wherethrthrattendendance,wheretheleave)
values('200216010','小红','女','大数据02','信息工程学院','大数据','4107015722','a1234','0406','1','0')
insertintostudent(studentid,sname,ssex,class,colleage,specialty,idnumber,cid,jointime,wherethrthrattendendance,wheretheleave)
values('200216010','小花','女','大数据02','信息工程学院','大数据','4107015713','3308','0407','1','0')
insertintouser1(Account,type1,password1)
values('2597730259','教师','111111')
insertintouser1(Account,type1,password1)
values('1111','学生','123456')
insertintouser1(Account,type1,password1)
values('11','院系领导','1212')
insertintouser1(Account,type1,password1)
values('1','管理员','12')
视图展示