当前位置:文档之家› 《sqlserver初级教学资料》网吧计费管理系统(数据库设计)

《sqlserver初级教学资料》网吧计费管理系统(数据库设计)


此中国职业教育联盟课程体系
23
项目总结
本项目使用了我们所学的数据库技术。由于仅限数据库设计,系统功能没能完 全实现。在我们学习了C# Winforms编程后,我们会完成一个有完整实现和 用户界面的项目——网吧计费系统,这个系统也是我们第一学期的结业项目, 本项目除了练习近期学习的数据技术以外,最重要的是为我们结业项目打下数 据设计的基础。
第三阶段 第四阶段
60分钟 30分钟
实现上机,换机,下机功能。 实现统计功能。
第五阶段 10分钟
导出脚本,分离数据库,关闭工具。
此中国职业教育联盟课程体系
8
阶段一
实现:建库,建表,建约束,建关系。 创建数据库NetBarDB并将数据文件和日志文件保存到“E:\NetBar\data” 路径下,如图所示,其他设置默认。
varchar(30) 计算机的描述,默认‘这台机器不错’。
此中国职业教育联盟课程体系
3
问题分析-2
表2 cardInfo的字段及说明
字段名称
数据类型
cardId cardNumber
int varchar(20)
说明 会员卡编号,主键,自动增长。 会员号,系统中不能出现重复的会员号。非空
cardPassword varchar(20)
此中国职业教育联盟课程体系
15
阶段三
3、 将4号会员从1号计算机换到4号计算机 (1) 判断4号计算机的状态。 (2) 修改1号计算机状态(将1号计算机改为空闲)。 (3) 修改4号计算机状态(将4号计算机改为使用)。 (4) 修改计算机编号为4且下机时间为空的上机记录(SQL语句如下)。
update recordInfo set PCId=4 where PCId=1 and endTime is null
update recordInfo set endTime = '2009-05-20 10:00:00' where recordId=1
(4) 计算上机费用,上机费用=上机时间*2 。 (5) 修改记录表的上机费用。 (6) 扣除上机费用。
select datediff(hh,beginTime,endTime) '上机时间' from recordInfo where recordId =1
此中国职业教育联盟课程体系
9
阶段一
新建表 新建CardInfo并添加约束 新建PCInfo表并添加约束 新建RecordInfo表并添加约束 创建表间关系 各表字段及关系如图所示。
此中国职业教育联盟课程体系10Fra bibliotek阶段二
实现:新增会员,新增计算机,查询所有会员和计算机,修改会员密 码,会员充值功能。 1、 插入会员卡信息并查询所有会员信息如图所示。
int
记录编号,主键,自动增长。
cardId PCId
int
会员卡编号,外键引用cardInfo的cardInfo。非空

int
计算机编号,外键引用PCInfo的PCId。非空。
beginTime
datetime 开始(上机)时间。默认为当前时间。
endTime
datetime 结束(下机)时间。上机时间应该小于下机时间。
insert into recordInfo values(4,1,getDate(),null,0)
说明:插入上机记录时,下机时间为空,上机费用为0,效果如图6所示。
此中国职业教育联盟课程体系
14
阶段三
2、 实现其他会员的上机 (1) 实现2号会员在2号计算机上机 (2) 实现3号会员在3号计算机上机
此中国职业教育联盟课程体系
11
阶段二
1、 插入计算机信息并查询所有计算机信息如图所示。
2、 将4号会员密码修改为‘001’,使用update语句。 3、 为4号会员冲值20元,并查询余额。
此中国职业教育联盟课程体系
12
阶段二
充值时,需将会员的余额修改为:原有余额+充值金额。 update cardInfo set cardBalance=CardBalance+充值金额 where 条件
会员密码,密码必须大于或等于6位。非空。
cardBalance int
卡上的余额,在办卡时,需充值50元。非空。
transactTime datetime
办卡的时间,默认为当前时间。非空。
此中国职业教育联盟课程体系
4
问题分析-3
表3 recordInfo的字段及说明
字段名称
数据类型
说明
recordId
此中国职业教育联盟课程体系
6
使用工具
工具: MicrosoftSQLServer2008
此中国职业教育联盟课程体系
7
阶段划分
网吧计费系统(数据库设计)实现阶段划分如表所示。
阶段名称 使用时间
阶段实现
第一阶段 60分钟
创建数据库,创建数据表,加约束,创建表间关系。
第二阶段 30分钟
插入会员卡和计算机数据,查询所有会员和计算机信息 。测试修改密码、会员充值、查询会员余额功能。
此中国职业教育联盟课程体系
16
阶段三
4、 4号计算机下机 (1) 得到上机记录
select * from recordInfo where PCId= 4 and endTime id null
(2) 修改机器状态(将4号机器的状态修改为空闲)。 (3) 修改下机时间(修改第二步得到的记录的下机时间)。
中国职业教育联盟课程体系 成就百万精英
SQLSERVER基础
项目实战 网吧计费系统(数据库设计)
2020/4/4
中国职业教育联盟课程体系
1
需求描述
重庆某网吧拟开发一套网吧计费系统,该系统要实现的功能包括。
计算机管理:新增计算机、查看没用使用的计算机。 会员卡管理:余额查询、办理会员、会员卡充值。 网吧业务:会员上机、换机、下机、计算费用、扣除费用。 数据统计:统计上机人数,计算网吧盈利,会员人数,欠费会员,统计上机 时间。
此中国职业教育联盟课程体系
17
阶段四
实现:数据的统计查询 Ø 记录统计(上机记录,下机记录,所有记录)。 Ø 营业收入(总收入,单次上机金额最大)。 Ø 会员统计(会员数量,余额总数,欠费会员信息)。 Ø 计算机(空闲机器信息,使用最多的计算机)。
此中国职业教育联盟课程体系
18
阶段四
1、 统计记录信息(要求按记录编号降序排列)
Ø 所有正在上机的记录
Ø 所有已下机的记录
此中国职业教育联盟课程体系
19
阶段四
2、 收入统计 Ø 上机总费用
Ø 单次上机最大金额
此中国职业教育联盟课程体系
20
阶段四
3、 会员统计 Ø 所有会员信息(按余额,升序排列)
Ø 余额总数 Ø 欠费会员详细信息以及最后一次上机信息。
此中国职业教育联盟课程体系
free
int
上机费用,费用必须大于或等于0。
此中国职业教育联盟课程体系
5
相关技术
1、 数据库基础: Ø 使用SQLServer2005创建数据库和表 Ø 分离数据库 2、 为字段建立约束 Ø 主键约束 Ø 检查约束 Ø 唯一约束 Ø 默认约束 Ø 外键约束 3、 使用SQL语句: Ø 使用insert插入数据 Ø 使用update修改数据 Ø 使用delete删除数据 Ø 使用select查询数据 4、 函数的使用: Ø 使用时间函数。 Ø 使用聚合函数。
21
阶段四
4、 计算机信息统计 Ø 当前空闲计算机
Ø 使用次数最多的计算机 (使用count函数)。
此中国职业教育联盟课程体系
22
阶段五
实现:导出脚本,分离数据库,关闭工具。
第二学期,我们依然会学习数据库相关技术,其中最重要的就是脚本的编写。 下面演示用工具导出自动生成脚本的步骤。第二学期我们将会自己编写这样的 脚本,大家可以将自己导出的脚本研究一下。
此中国职业教育联盟课程体系
24
中国职业教育联盟课程体系 成就百万精英
感谢观映
2020/4/4
中国职业教育联盟课程体系
25
Ø 所有上机记录 select recordId '记录编号' , cardNumber '卡号' , a.PCId '机器编号', a.beginTime '上机时间', a.endTime '下机时间' , a.fee as '上机费用' from recordInfo as a join cardInfo as b on a.cardId =b.cardId join PCInfo as c on c.PCId = a.PCId order by a.recordID desc
此中国职业教育联盟课程体系
13
阶段三
实现:上机,换机,下机功能。
1、 实现4号会员在1号计算机上机。 (1) 验证会员号或密码是否正确。(根据会员号和密码查询)。 (2) 查询4号会员的余额是否大于0。(查询会员余额)。 (3) 查询4号会员卡是否在上机(查询记录表中卡号等于4且下机时间为空的 记录)。 (4) 查询1号机器是否为空闲。(查询计算机状态)。 (5) 修改1号机器为使用状态。(修改计算机状态为1)。 (6) 插入上机记录。(SQL语句如下)。
提示:第一次办理会员卡,需预存50元,网吧收费为每小时2元。
此中国职业教育联盟课程体系
。2
问题分析-1
表1 PCInfo的字段及说明
字段名称
数据类型
说明
PCId
相关主题