1、2、创建存储过程和触发器针对一般高校机房管理系统的需求分析、通过对学生上机过程、教学班上机过程、注册过程、充值过程、的内容的数据流程分析一现设计如下数据项和数据结构(1)机房基本信息:包括机房号、机房名、计算机数目、管理人等(2)计算机基本信息:包括计算机IP地址、编号、机房号、品牌、备注等(3)学生基本信息:包括学号、姓名、性名、行政班等(4)用户基本信息:包括用户名、学号、密码、余额等(5)学生充值基本信息:包括用户名、充值时间、金额、办理人等(6)机房收费标准基本信息:包括机房号、金额等(7)学生上机过程登记基本信息:包括计算机IP地址、日期、上机时间、下机时间、学号、上机类型等(8)机
2、房费用统计基本信息:包括计算机IP地址、日期、统计时间、费用等 1.业务流程图 2.数据流图room(机房表) 字段名数据类型能否为空是否为主键说明rnoint否是机房号rnamechar(10)机房名numbersmallint能计算机数目manager管理人computer(计算机表)IPchar(20)计算机IP地址cno编号brandChar(20)品牌noteVarchar(100)备注Student(学生表)是否作为主键snoInt学号snameChar(10)姓名sexChar(2)性别class行政班Usertable(用户表)说明 uname用户名pword密码money余额
3、Prepaid(充值表) ptimedatetime充值时间pmoneysmallmoney金额trans收费人员Standard(收费标准表) stime时间段smoney金额/小时Record(上机过程登记表)begintime上机时间endtime下机时间typeChar(15)上机类型statistik (机房费用统计表) dates日期Snomoneys费用图一 机房实体E-R图 图二 学生实体E-R图机房(机房号,机房名,机器数目,管理人)学生(学号,姓名,性别,行政班)计算机(编号,机房号,品牌,备注)用户(用户名,学号,密码,余额)create database roomon(
4、 name=room_data, filename=E:roomdataroom_data size=5MB, maxsize=10MB,filegrowth=1MB)log on( name=room_logroomlogroom_log2、room(机房表)的创建create table roomrno int not null primary key,rname char(10) not null,number smallint null,manager char(10) not null3、computer(计算机表)的创建create table computerIP char(20
5、) not null primary key,cno smallint not null ,rno int not null,brand char(20) null,note varchar(50) null4、student(学生表)的创建create table studentsno int not null primary key,sname char(10) not null,sex char(2) null,class char(20) not null6、User(用户表)的创建create table usertableuname char(20) not null primar
6、y key,sno int not null,pword char(20) not null,moneys money null,7、prepaid(充值表)的创建 create table prepaiduname char(20) not null,ptime datetime not null,pmoney smallmoney not null,trans char(10) not null,constraint p_primary primary key(uname,ptime)8、standard(收费标准表)的创建create table standardstime char(2
7、0) not null,smoney smallmoney not null,constraint c_primary primary key(rno,stime)11、record(上机过程登记表)的创建create table recordIP char(20) not null,begintime datetime not null,endtime datetime null,type char(15) not null,constraint t1 primary key(IP,begintime)12、statistik(费用统计表)的创建create table statistikd
8、ates datetime not null,moneys smallmoney not null,constraint t2 primary key(IP,dates)1、创建存储过程实现各机房上机费用的统计1)代码create proc s_room(rno int)asselect rname 机房名,sum(moneys) 费用 from statistik inner join computeron computer.IP=statistik.IP inner join room on room.rno=computer.rnowhere room.rno=rnogroup by r
9、name2、创建触发器实现费用登记时,自动修改该生的账户余额。create trigger u_money on statistikfor insertupdate usertableset moneys=moneys-(select moneys from inserted)where sno=(select sno from inserted)2)数据测试查询插入记录前学生的余额select sno 学号,moneys 余额from usertablewhere sno=2011508092执行插入操作insert into statistikvalues(001,getdate(),101,2.5)查询插入记录学生的余额3.创建触发器实现充值时自动修改该生余额create trigger un_money on prepaidset moneys=moneys+(select pmoney from inserted)where uname=(select uname from inserted)select sno 学号,moneys 余额 from usertablegoinsert into prepaidbbb,getdate(),5,个vga select * from prepaid
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1