教务管理系统大数据库设计.docx
《教务管理系统大数据库设计.docx》由会员分享,可在线阅读,更多相关《教务管理系统大数据库设计.docx(20页珍藏版)》请在冰豆网上搜索。
教务管理系统大数据库设计
第一章:
项目计划
1.1项目背景:
教务系统管理平台充分利用互联网络B/S管理系统模式,以网络为平台,为各个学校教务系统的管理提供一个平台,帮助学校管理教务系统,用一个账号解决学校教务教学管理,并且学校可以自由选择学校需要的教务管理系统,灵活地定制符合学校自己实际情况的教务系统.
1.2系统开发目的:
提高学生,老师管理和操作事务的运作效率。
1.3定义:
学生选课和老师评分必须在管理员的设置条件下进行。
第二章:
详细分析
2.1、系统功能
设置学期时间:
管理员登录系统后设置学期的时间,只有当时间为某个状态时,其他角色例如老师,才能做某些事情。
学期时间只能由角色管理员操作:
包括对学期时间表的增加,删除,对某个学期时间状态的改变。
学生选课:
当管理员设置为学期开始时,学生可以选课,学生选课受学分影响,只能选择总学分为多少的课程。
老师评分:
当管理员设置为学期评分时,老师才可以评分。
个人信息管理:
对自己个人信息进行添加和修改。
成绩查询:
学生可以对自己成绩进行查询。
个人课表查询:
按时间的不同,每个角色都有自己不同的课表。
2.2、系统结构
功能描述:
学生选课和老师评分必须在管理员设置学期的条件下进行。
2.3、数据流图
顶层图
0层图
2.4、户类型与职能
(1)管理员:
对学期设置的管理每个阶段有不同的功能。
(2)老师:
对选修了自己课程的学生评分。
(3)学生:
选修科目。
2.5、系统环境需求
系统模式
本系统采用B/S模式作为开发模式
硬件环境
服务器端:
高性能的计算机一台,
普通的双绞线作为连接。
客户端:
普通的计算机或者工作站,
普通的双绞线作为连接。
软件环境
服务器端:
安装SQLSERVER2000的服务器版本
第三章:
系统概念设计
系统ER图
系统ER图说明:
(1)同一的老师可以教多个科目,同一科目可以由多个老师教。
(2)同一学生可以选修多老师的科目,同一个老师的科目可以让多个学生选修。
第四章:
逻辑设计
4.1系统关系模型
a)选课成绩表(选课编号,平时成绩,期末成绩,综合成绩)
b)用户表(用户编号,用户名称,用户密码,性别,住址,电话)
c)班别表(班别编号,班别名称,班别描述)
d)系别(系别编号,系别名称,系别电话)
e)学期时间(学期编号,学期名称,学期开始时间,学期结束时间,学期状态)
f)课室表(课室编号,课室名称,课室面积,课室最大人数)
g)课程表(课程编号,课程名称,课程学分,课程类型,课程学时)
h)角色表(角色编号,角色名称,角色权限)
i)老师授课表(授课编号,授课时间)
j)上课地点表(地点编号)
4.2系统数据库表结构
数据库表索引
表名
中文名
Score
选课成绩表
Sysuser
用户表
Classes
班别表
Dept
系别表
Items
学期时间表
Major
课程表
Classroom
课室表
Userstyle
角色表
Mdteacher
老师授课表
Majorroom
上课地点表
用户表(Sysuser)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
Id
varchar
20
P
Notnull
用户编号
classesid
Varchar
20
f
Notnull
班级编号
Userstyleid
Varchar
10
f
Notnull
角色编号
Username
Varchar
10
Notnull
用户名
Password
Varchar
10
Notnull
密码
Sex
Varchar
2
Notnull
性别
Address
Varchar
50
住址
Phone
Varchar
10
电话
选课成绩表(Score)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
Scid
int
P
Notnull
选课成绩编号
id
Varchar
20
F
Notnull
用户名称
Muid
Int
F
Notnull
课程编号
Itemid
Varchar
20
F
Notnull
学期编号
Pacgrade
Int
平时成绩
Endgrade
Int
期末成绩
Syngrade
Int
综合成绩
班别表(Classes)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
Classesid
varchar
20
P
Notnull
班别编号
Classesname
Varchar
10
Notnull
班别名称
Classescontext
Varchar
50
Notnull
班别描述
系别表(Dept)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
Deptid
varchar
20
P
Notnull
系别编号
Deptname
Varchar
10
Notnull
系别名称
Deptphone
Varchar
10
系电话
Deptaddress
Varchar
20
系地址
学期时间表(Items)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
Itemsid
varchar
20
P
Notnull
学期编号
Itname
Varchar
10
Notnull
学期名称
Starttime
Data
10
学期开始时间
Endtime
Data
10
学期结束时间
Itstate
Varchar
10
Notnull
学期状态
课程表(Major)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
MDid
varchar
20
P
Notnull
课程编号
Mdname
Varchar
10
Notnull
课程名称
Mdcredit
Varchar
10
Notnull
课程学分
Mdstyle
Varchar
10
Notnull
课程类型
Mdstudytime
varchar
10
课程学时
课室表(Classroom)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
Roomed
varchar
20
P
Notnull
课室编号
Roomname
Varchar
10
Notnull
课室名称
Area
Int
Notnull
面积
Maxnum
Int
Notnull
最大人数
角色表(Userstyle)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
Usersyleid
varchar
20
P
Notnull
角色编号
Userstylename
Varchar
10
Notnull
角色名称
Permission
Varchar
10
Notnull
权限
教师授课表(Mdteacher)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
Muid
Int
P
Notnull
授课编号
Id
Varchar
10
F
Notnull
用户编号
Mdid
Varchar
10
F
Notnull
课程编号
Mtime
Datetime
10
Notnull
授课时间
上课地点表(Majorroom)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
Mrid
varchar
20
P
Notnull
上课地点编号
Roomid
Varchar
10
F
Notnull
课室编号
Mdid
Varchar
10
F
Notnull
课程编号
第五章:
源码
/*==============================================================*/
/*触发器:
删除已存在表*/
/*==============================================================*/
ifexists(select*fromsysobjectswhereid=object_id('Classes'))
droptableClasses
GO
ifexists(select*fromsysobjectswhereid=object_id('Classroom'))
droptableClassroom
GO
ifexists(select*fromsysobjectswhereid=object_id('Dept'))
droptableDept
GO
ifexists(select*fromsysobjectswhereid=object_id('Items'))
droptableItems
GO
ifexists(select*fromsysobjectswhereid=object_id('Major'))
droptableMajor
GO
ifexists(select*fromsysobjectswhereid=object_id('Majorroom'))
droptableMajorroom
GO
ifexists(select*fromsysobjectswhereid=object_id('Mdteacher'))
droptableMdteacher
GO
ifexists(select*fromsysobjectswhereid=object_id('Score'))
droptableScore
GO
ifexists(select*fromsysobjectswhereid=object_id('Sysuser'))
droptableSysuser
GO
ifexists(select*fromsysobjectswhereid=object_id('Userstyle'))
droptableUserstyle
GO
/*==============================================================*/
/*Table:
Classes*/
/*==============================================================*/
createtableClasses
(
classesidvarchar(20)notnull,
deptidvarchar(20),
classnamevarchar(20)unique,
clacontextvarchar(50),
primarykey(classesid)
)
go
/*==============================================================*/
/*Table:
Classroom*/
/*==============================================================*/
createtableClassroom
(
roomidvarchar(20)notnull,
roomnamevarchar(20)unique,
areaintcheck(area>0),
maxnumintcheck(maxnum>0),
primarykey(roomid)
)
go
/*==============================================================*/
/*Table:
Dept*/
/*==============================================================*/
createtableDept
(
deptidvarchar(20)notnull,
deptnamevarchar(20)unique,
depphonevarchar(10),
primarykey(deptid)
)
go
/*==============================================================*/
/*Table:
Items*/
/*==============================================================*/
createtableItems
(
itemsidintnotnullIDENTITY,
itnamevarchar(20),
starttimedatetime,
endtimedatetime,
itstatevarchar(10)check(itstatein(‘0’,’1’,’2’)),
primarykey(itemsid)
)
go
/*==============================================================*/
/*Table:
Major*/
/*==============================================================*/
createtableMajor
(
MDidvarchar(20)notnull,
MDnamevarchar(10)unique,
MDcreditint,
MDstylevarchar(10)check(MDstylein(‘公选课’,’选修课’)),
MDstudytimeintcheck(MDstudytime>0),
primarykey(MDid)
)
go
/*==============================================================*/
/*Table:
Majorroom*/
/*==============================================================*/
createtableMajorroom
(
MRidintnotnullIDENTITY,
roomidvarchar(20),
MDidvarchar(20),
primarykey(MRid)
)
go
/*==============================================================*/
/*Table:
Mdteacher*/
/*==============================================================*/
createtableMdteacher
(
muidintnotnullIDENTITY,
idvarchar(20),
MDidvarchar(20),
Mtimedatetime,
primarykey(muid)
)
go
/*==============================================================*/
/*Table:
Score*/
/*==============================================================*/
createtableScore
(
scidintnotnullIDENTITY,
idvarchar(20),
muidint,
itemsidint,
pacgradeint,
endgradeint,
syngradeint,
primarykey(scid)
)
go
/*==============================================================*/
/*Table:
Sysuser*/
/*==============================================================*/
createtableSysuser
(
idvarchar(20)notnull,
classesidvarchar(20),
userstyleidvarchar(10),
usernamevarchar(20)unique,
passwordvarchar(10),
sexvarchar(10)check(sexin(‘男’,’女’)),
addressvarchar(50),
phonevarchar(20),
primarykey(id)
)
go
/*==============================================================*/
/*Table:
Userstyle*/
/*==============================================================*/
createtableUserstyle
(
userstyleidvarchar(10)notnull,
userstylenamevarchar(20)unique,
permissionvarchar(50),
primarykey(userstyleid)
)
go
altertableClassesaddconstraintFK_Reference_11foreignkey(deptid)
referencesDept(deptid)ondeletecascadeonupdatecascade;
altertableMajorroomaddconstraintFK_Reference_15foreignkey(MDid)
referencesMajor(MDid)ondeletecascadeonupdatecascade;
altertableMajorroomaddconstraintFK_Reference_18foreignkey(roomid)
referencesClassroom(roomid)ondeletecascadeonupdatecascade;
altertableMdteacheraddconstraintFK_Reference_10foreignkey(id)
referencesSysuser(id)ondeletecascadeonupdatecascade;
altertableMdteacheraddconstraintFK_Reference_16foreignkey(MDid)
referencesMajor(MDid)ondeletecascadeonupdatecascade;
altertableScoreaddconstraintFK_Reference_13foreignkey(muid)
referencesMdteacher(muid);
altertableScoreaddconstraintFK_Reference_19foreignkey(itemsid)
referencesItems(itemsid);
altertableScoreaddconstraintFK_Reference_4foreignkey(id)
referencesSysuser(id);
altertableSysuseraddconstraintFK_Reference_12foreignkey(userstyleid)
referencesUserstyle(userstyleid)ondeletecascadeonupdatecascade;
altertableSysuseraddconstraintFK_Reference_14foreignkey(classesid)
referencesClasses(classesid)ondeletecascadeonupdatecascade;
/*==============================================================*/
/*存储过程:
查询选修某个老师课程的学生*/
/*==============================================================*/
createprocedurestu(@trchar(20))
as
selectSysuser.id,Sysuser.usernamefromSysuser,ScorewhereScore.id=Sysuser.idandScore.muidin
(selectmuidfromMdteacher,SysuserwhereMdteacher.id=Sysuser.idandSysuser.username=@tr);
/*==============================================================*/
/*授权*/
/*================