网络游戏信息管理系统
大型数据库技术设计报告
题目:网络游戏信息管理系统数据库设计学生姓名:易进
学号: 2
专业班级: 网工13101班
指导教师: 刘波涛
设计时间: 2015年下学期
指导老师意见:
评定成绩:
签名:日期:
目录
1、?需求分析.......................................................................................................................... 1
2、 .......................................................................................................................概念模型设计?1
1、?玩家信息E-R图(如图1所示)?1
2、?游戏信息E—R图(如图2所示)?2
3、.......................................................................... 排行信息E-R图(如同3所示)?2
4、................................................................................. 交易信息E—R图(如图4所示)?3
5、?游戏币信息E—R图(如图5所示)?3
6、整体简洁E-R图(如图6所示)?4
7、?用户信息E-R图(如图7所示) (4)
3、?逻辑结构设计 (5)
1、关系模型设计5
2、?数据库表结构得设计 .............................................................................................. 5
4、数据库得实现 (7)
1、?创建玩家信息表 ...................................................................................................... 7
2、向玩家信息表中插入记录8
3、?在表空间上创建游戏表?9
4、?向游戏表中插入记录 (9)
5、创建排行信息表?9
6、向排行信息表中插入记录 (10)
107、........................................................................................................ 创建交易信息表?8、向交易信息表中插入记录10
9、创建游戏币信息表.............................................................................................. 11
10、向游戏币信息表中插入记录 (11)
11、创建用户信息表 (11)
12
12、向用户信息表中插入记录?
13、建立外键与CHCEK约束 ................................................................................ 125、?主要代码?13
1、查询代码13
2、?创建视图?17
18
3、创建存储过程?
6、数据库备份?20
1、导出数据?20
s
1.需求分析
要求实现玩家信息管理、游戏介绍、成绩排行等功能,包括玩家信息得添加、修改、删除及查询;按游戏类型、关键字等实现网络游戏得灵活查询;实现游戏币销售等功能。
2.概念模型设计
1.玩家信息E-R图(如图1所示)
图1玩家信息E-R图
2.游戏信息E-R图(如图2所示)
图2游戏信息E—R图
3.排行信息E-R图(如同3所示)
图3排行信息E-R图
4.交易信息E—R图(如图4所示)
图4职务信息E—R图5.游戏币信息E-R图(如图5所示)
图5考勤信息E—R图
6.整体简洁E-R图(如图6所示)
图6整体简洁E—R图7.用户信息E—R图(如图7所示)
图7用户信息E-R图
3.逻辑结构设计
1.关系模型设计
1)玩家信息对应得关系模型
玩家(玩家编号(主键),姓名,性别,游戏编号(外键),等级,充值总金额
2)游戏信息对应得关系模型
游戏(游戏编号(主键),游戏名称,运营公司,上线时间)
3)排行信息对应得关系模型
排行(游戏编号(外键),游戏人数,充值总金额)
4)交易信息对应得关系模型
交易(交易编号(主键),玩家编号,游戏编号,RMB金额,交易时间)
5)考勤信息对应得关系模型
考勤(员工编号(主键一部分),日期(主键一部分),请假次数,迟到次数,缺
勤次数)
6)用户信息对应得关系模型
用户(用户名,密码,权限)
2.数据库表结构得设计
1)玩家信息表结构
2)游戏信息表结构
3)排行信息表结构
4)交易信息表结构
5)游戏币信息表结构
4.数据库得实现
1.创建玩家信息表
CREATETABLE player
(
pidintprimarykey,
pname varchar(10),
sexvarchar(2),
gid int,
levelsint,
money int
);
2.向玩家信息表中插入记录
insertinto player values(1,'张三',’男',1,58,51);
insert into playervalues(2,’李四’,'男',1,59,58);
insert into player values(3,’王五','男',2,27,65);
insert into player values(4,'赵六','男',2,25,25);
insert into player values(5,’徐涛’,'男’,2,29,5);
insert intoplayer values(6,'石头’,’男',3,27,53);
insertintoplayer values(7,’陈子文','男',3,25,5);insert into player values(8,’王灿','女’,4,66,35);
insertinto player values(9,’徐香气’,'女',4,66,25);insert into player values(10,’郭俊明',’男',5,6,45);
insert into player values(11,’王一','男',4,66,35);
insert intoplayer values(12,'王二',’女’,3,6,5);
insert into playervalues(13,'王三’,'男',4,66,30);
insert into player values(14,'王四',’女',2,76,35);
insert into player values(15,'王五五’,'女',4,66,35);
insertintoplayer values(16,’王六’,'女’,1,89,3);
insert into playervalues(17,'王七',’女',4,54,35);insert intoplayervalues(18,’王八’,’男',2,66,31); insert intoplayervalues(19,’王九',’女',4,86,35);
insert into player values(20,’王十','女',1,66,37);
insert intoplayer values(21,’赵一’,'男',4,66,54);
insert into playervalues(22,’赵二’,'女',3,66,35);
insertinto playervalues(23,’赵三',’男',1,69,38);
insert intoplayer values(24,'赵四','男',5,66,39);
insert into player values(25,'赵五’,'女’,4,60,5);
3.在表空间上创建游戏表
CREATE TABLE game
(
gid int primary key,
gname varchar(10),
typevarchar(5) NOT NULL,
operating_pany varchar(10),
birth_date date
);
4.向游戏表中插入记录
insert into gamevalues(1,'吞噬天地','网游','网易', '2014-9-1’);
insert into game values(2,'英雄联盟’,'竞技',’腾讯',’2010—5-20’);
insert into game values(3,'DOTA2’,'竞技’,'暴雪', ’2006-1-30’);
insert into gamevalues(4,'炫舞’,’休闲’,'腾讯’, '2012—6—1');
insertinto game values(5,’模拟人生’,'模拟’,’腾讯',’2010—2—25'); 5.创建排行信息表
CREATE TABLE rank
(
gid int,
peoplesum int,
moneysum int
);
6.向排行信息表中插入记录
insert into rank values(1,25216020,35000);
insert into rank values(2,26514260,250000);
insert intorank values(3,215656560,205000);
insert into rank values(4,2515540,350000);
insert into rank values(5,1655620,3000);
7.创建交易信息表
CREATE TABLE salerecord
(
saleid int primary key,
pidint,
gid int,
RMB int,
saledate date
);
8.向交易信息表中插入记录
insert into salerecord values(1,1,2,35000,'2014—9—1’);
insert into salerecord values(2,2,3,250000,'2013-8—12'); insert into salerecord values(3,3,4,205000,'2014-9—12');insert into salerecord values(4,4,1,350000,'2012-7-21');
insert intosalerecord values(5,5,4,7000,'2014-9-3');
insert into salerecord values(6,11,4,35050,'2010—3—1');
insertinto salerecord values(7,6,5,50010,'2014-4-17'); insert intosalerecord values(8,9,2,935000,’2009-8-5');insertinto salerecord values(9,6,3,835000,'2015-3-14');
insert into salerecord values(10,18,1,3215000,'2010-3-11');
insertintosalerecord values(11,22,2,1325000,’2014-3-1');
9.创建游戏币信息表
CREATETABLEgameb
(
gid int,
RMBint,
gameb int
);
10.向游戏币信息表中插入记录
insert into gameb values(1,8,800);
insert into gameb values(2,9,9000);
insert into gameb values(3,65,6500);
insert intogameb values(4,5,500);
insert into gameb values(5,25,25000);
insert into gameb values(6,25,2500);
insert into gameb values(7,25,2500);
11.创建用户信息表
create table users
(username char(10) not null,
password char(30) not null,
jurischar(30)
);
12.向用户信息表中插入记录
insert into users(username,password,juris)values(’YH’,’123',’所有权限’);
insert intousers(username,password,juris)values('YH00’,’123',’查询');
13.建立外键与CHCEK约束
alter table player
addconstraint player_game foreignkey(gid)
references game(gid);
alter table rank
add constraint rank_game foreign key(gid)
references game(gid);
alter table salerecord
add constraint salerecord_playerforeign key(pid)references player(pid);
alter table salerecord
add constraint salerecord_game foreign key(gid)
references game(gid);
alter table player
add constraint check_sex check (sexin(’男’,'女'));5.主要代码
1.查询代码
1)查询王五得等级
select levels from player
where player、pname=’王五';
2)查询模拟戏人生得运营公司
select operating_pany fromYH、dbo、game
where game、gname ='模拟人生';
3)查瞧游戏排行按游戏人数排列
select distinct game、gname,rank、peoplesum,rank、moneysum from YH、dbo、game,YH、dbo、rank
where rank、gid= game、gid
order by peoplesumdesc;
4)查询DOTA2所有玩家信息
select player、* from YH、dbo、player,YH、dbo、game
where game、gname='DOTA2’andgame、gid= player、gid;
5)查询玩家及玩家所玩游戏名称
selectplayer、pid,player、pname,game、gname,player、levels from YH、dbo、player,YH、dbo、game
where player、gid=game、gid;
6)查询李四玩家得所有交易记录
select salerecord、* from YH、dbo、salerecord,YH、dbo、player
whereplayer、pname='李四'and player、pid=salerecor d、pid;
7)查询英雄联盟得玩家排行表按等级排列
select player、*from YH、dbo、player,YH、dbo、game
wheregame、gname='英雄联盟' andplayer、gid=game、gid
order by levels desc;
8)查询炫舞玩家得总充值金额
select sum(player、money) 炫舞充值总金额 from YH、dbo、game,YH、dbo、player
where game、gname='炫舞' and player、gid =game、gid;
9)查瞧所有充值金额超过50得玩家得名称与游戏
select game、gname,player、pname,salerecord、RMBf rom YH、dbo、game,YH、dbo、salerecord,YH、dbo、player
where salerecord、RMB〉50 and salerecord、pid=player、pidan d player、gid=game、gid;
10)查询与吞噬天地有交易得玩家得信息按交易金额降序排列
select player、*,salerecord、RMB from YH、dbo、salerecord,YH、dbo、game,YH、dbo、player
where game、gname='吞噬天地’ and game、gid=salerecord、g id and salerecord、pid = player、pid
order by salerecord、RMB desc;
2.创建视图
1)创建视图统计各个游戏得玩家数量。按玩家编号升序排列
createview vw_count as
select distinct game、gid,game、gname,count(player、pid) player
fromYH、dbo、game,YH、dbo、player
where game、gid= player、gid
group by game、gid,game、gname
order by game、gid;
2)调用视图(sal_avg)中得记录
select *from vw_count;
3.创建存储过程
1)创建存储过程,使某玩家升级(levelup)
create procedure levelup
pname varchar(10)
as
begin
update YH、dbo、player set player、levels=player、level s+1
where player、pname=pname;
end;
张三升级了
exec leveluppname=’张三';