文档库 最新最全的文档下载
当前位置:文档库 › 网络游戏信息管理系统

网络游戏信息管理系统

网络游戏信息管理系统
网络游戏信息管理系统

1/23

大型数据库技术设计报告

题 目:网络游戏信息管理系统数据库设计 学生姓名: 易进 学 号: 201317030119 专业班级: 网工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)

7.创建交易信息表 (10)

8.向交易信息表中插入记录 (10)

9.创建游戏币信息表 (11)

10.向游戏币信息表中插入记录 (11)

11.创建用户信息表 (11)

12.向用户信息表中插入记录 (12)

13.建立外键和CHCEK约束 (12)

5.主要代码 (13)

1.查询代码 (13)

2.创建视图 (17)

3.创建存储过程 (18)

6.数据库备份 (20)

1.导出数据 (20)

s

1.需求分析

要求实现玩家信息管理、游戏介绍、成绩排行等功能,包括玩家信息的添加、修改、删除及查询;按游戏类型、关键字等实现网络游戏的灵活查询;实现游戏币销售等功能。.

2.概念模型设计

1.玩家信息E-R图(如图1所示)

图1玩家信息E-R图

图2游戏信息E-R图

3.排行信息E-R图(如同3所示)

图3排行信息E-R图

图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.创建玩家信息表CREATE TABLE player

(

pid int primary key,

pname varchar(10),

sex varchar(2),

gid int,

levels int,

money int

);

2.向玩家信息表中插入记录insert into player values(1,'张三','男',1,58,51); insert into player values(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 into player values(6,'石头','男',3,27,53); insert into player values(7,'陈子文','男',3,25,5); insert into player values(8,'王灿','女',4,66,35); insert into player values(9,'徐香气','女',4,66,25); insert into player values(10,'郭俊明','男',5,6,45); insert into player values(11,'王一','男',4,66,35); insert into player values(12,'王二','女',3,6,5); insert into player values(13,'王三','男',4,66,30); insert into player values(14,'王四','女',2,76,35); insert into player values(15,'王五五','女',4,66,35); insert into player values(16,'王六','女',1,89,3); insert into player values(17,'王七','女',4,54,35); insert into player values(18,'王八','男',2,66,31); insert into player values(19,'王九','女',4,86,35); insert into player values(20,'王十','女',1,66,37); insert into player values(21,'赵一','男',4,66,54); insert into player values(22,'赵二','女',3,66,35); insert into player values(23,'赵三','男',1,69,38);

insert into player values(24,'赵四','男',5,66,39);

insert into player values(25,'赵五','女',4,60,5);

3.在表空间上创建游戏表

CREATE TABLE game

(

gid int primary key,

gname varchar(10),

type varchar(5) NOT NULL,

operating_company varchar(10),

birth_date date

);

4.向游戏表中插入记录

insert into game values(1,'吞噬天地','网游','网易', '2014-9-1');

insert into game values(2,'英雄联盟','竞技','腾讯', '2010-5-20');

insert into game values(3,'DOTA2','竞技','暴雪', '2006-1-30');

insert into game values(4,'炫舞','休闲','腾讯', '2012-6-1');

insert into 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 into rank 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,

pid int,

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 into salerecord values(5,5,4,7000,'2014-9-3'); insert into salerecord values(6,11,4,35050,'2010-3-1'); insert into salerecord values(7,6,5,50010,'2014-4-17'); insert into salerecord values(8,9,2,935000,'2009-8-5'); insert into salerecord values(9,6,3,835000,'2015-3-14');

insert into salerecord values(10,18,1,3215000,'2010-3-11'); insert into salerecord values(11,22,2,1325000,'2014-3-1');

9.创建游戏币信息表

CREATE TABLE gameb

(

gid int,

RMB int,

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 into gameb 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,

juris char(30)

);

12.向用户信息表中插入记录

insert into users(username,password,juris)values('YH','123','所有权限'); insert into users(username,password,juris)values('YH00','123','查询');

13.建立外键和CHCEK约束

alter table player

add constraint player_game foreign key (gid)

references game(gid);

alter table rank

add constraint rank_game foreign key (gid)

references game(gid);

alter table salerecord

add constraint salerecord_player foreign 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 (sex in('男','女'));

5.主要代码

1.查询代码

1)查询王五的等级

select levels from player

where player.pname='王五';

2)查询模拟戏人生的运营公司

select operating_company from YH.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 peoplesum desc;

4)查询DOTA2所有玩家信息

select player.* from YH.dbo.player,YH.dbo.game

where game.gname='DOTA2' and game.gid = player.gid;

5)查询玩家及玩家所玩游戏名称

select player.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

where player.pname='李四'and player.pid=salerecord.pid;

7)查询英雄联盟的玩家排行表按等级排列

select player.* from YH.dbo.player,YH.dbo.game

where game.gname='英雄联盟' and player.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.RMB from YH.dbo.game,YH.dbo.salerecord,YH.dbo.player

where salerecord.RMB>50 and salerecord.pid=player.pid and 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.gid and salerecord.pid = player.pid

order by salerecord.RMB desc;

2.创建视图

1)创建视图统计各个游戏的玩家数量。.按玩家编号升序排列

create view vw_count as

select distinct game.gid,game.gname,count(player.pid) player

from YH.dbo.game,YH.dbo.player

where game.gid= player.gid

相关文档