数据库大作业-三国战略2_第1页
数据库大作业-三国战略2_第2页
数据库大作业-三国战略2_第3页
数据库大作业-三国战略2_第4页
数据库大作业-三国战略2_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库设计报告-模拟三国策略游戏数据库院系: 软件学院 班级: 软件0903班 组员: 卢鹏洲(200992042)组员: 马英杰(200992214) 日期 2011/11/1一、业务规则我们数据库设计的构思来自于平时玩的三国题材游戏。根据游戏中武将、城池、势力、军队、人物关系等各种信息,以及建设、战斗、查看情报等各种功能,提出一种可以实现游戏部分功能的数据库设计方案。 在此,我们首先分析游戏的要实现的功能主要包括:1.情报查看:用户(以下统称玩家)可以查看各个势力、军团、城池的情报。2.任命太守:玩家将一名武将设置为一座城池的太守,太守可在城池中执行内政命令。3.城池经营:城池经营包涵两个

2、分支功能,一个是内政,内政由城池的太守执行(执行效果由智力决定),内政提高城市的治安,治安越高兵粮增加越快。另一个是征兵,选取一个武将对一只部队进行征兵,征兵数量由武将武力决定。 4.攻打城池:选择己方的一个城池发动对敌方一个城池的进攻,攻打时以部队为单位,每只部队由一到两名武将带领。5.输送:将部队或武将由一个城池转移到另一个城池。游戏过程中的主要功能为以上几种,我们的数据库就围绕上述功能设计,尽管要形成一个游戏还有很多细小零碎的功能,其余和数据库关系不大的功能在此就不赘述了。二、 业务流程1.情报查看:玩家执行情报查看功能,相关数据操作如下:1.1“实力情报显示”玩家发出的查看命令,系统显

3、示各势力总体情报。1.2“军团情报显示”玩家选择一个势力,显示该势力军团情报。1.3“城池武将情报显示”选择一个军团,显示该军团城池武将情报。 图 1 玩家查看情报数据流图2任命太守:玩家指定一位武将,再指定一座己方城池,将该武将设置为该城池太守,玩家相关数据操作如下:1.1“城池列表显示”1.2“选择城池”玩家选择城池,选择信息传给系统2.1“武将列表显示”2.2“选择武将”玩家选择城池、和太守,选择信息传给系统3.1“修改武将所在”3.2“计算城池太守能力”系统根据玩家指令修改城池3.3“太守能力修改”生成新的太守数据。 图 2 太守任命数据流图3.城池经营-内政:玩家选择城池,根据该城太

4、守智力增加城池治安,相关数据操作如下:1.1“城池列表显示”1.2“城池选择”玩家根据系统给出的城池表选择城池,选择信息传给系统2.1“治安计算”系统根据所选城池最大治安值和太守智力计算出新治安值,并修改城池数据 图 3 内政指令数据流图4.城池经营-征兵:玩家选择城池,之后选择武将、部队,让该武将对该部队执行征兵,相关数据操作如下:1.1“城池列表显示”1.2“选择城池”根据系统提供城池表选择城池2.1“武将、部队显示”系统根据所选城池生成武将部队表2.2“选择武将、部队”由玩家选择执行武将和部队3.1“计算征兵数”系统根据玩家选择计算,然后修改相应数据 图4 征兵指令数据流图5.攻打城池:

5、有玩家选择一个敌对城池,选择由己方武将和部队编成的军队,将所选数据交给系统,系统计算输赢,修改城池、武将、部队信息,数据流图如下: 图 5 攻城指令数据流图6.输送:玩家选择一个城池的部队或武将,转移到另一城池,对两城数据以及转移武将、部队数据进行修改,数据流图如下: 图 6 输送指令数据流图三、 概念设计 图 7 整体ER图四、 逻辑设计势力表:军团表:城池表:部队表:兵种表:太守表:武将表:武将关系表:关系表:如图所示,有钥匙标示的是表的主键,如城池的城池名,有的表不含有主键只是作为外部键,如太守表、武将关系表中没有主键五、 规范化设计第一范式势力(势力名,君主,)军团(军团名,所属势力,

6、军团长)城池(城池名,所属军团,所属势力,太守)太守(镇守城,名字,战力值,农业值)武将(武将名,驻守城,势力,武力,智力)武将关系(武将名,关系武将,关系)部队(部队名,兵种,驻扎城池)兵种(兵种名,地战力,山战力,水战力,城战力)第二范式 同以上第一范式第三范式势力(势力名,君主,)军团(军团名,所属势力,军团长)城池(城池名,所属军团,太守)武将(武将名,驻守城,武力,智力)太守(镇守城,名字,战力值,农业值)武将关系(武将名,关系武将,关系)部队(部队名,兵种,驻扎城池)兵种(兵种名,地战力,山战力,水战力,城战力)BC范式 同以上第三范式六、 物理设计建表语句:CREATE TABL

7、E dbo.势力(势力名 char(20) NOT NULL,君主 char(20) NULL, CONSTRAINT PK_势力_1 PRIMARY KEY CLUSTERED (势力名 ASC)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON PRIMARY) ON PRIMARYCREATE TABLE dbo.兵种(兵种名 char(20) NOT NULL,地战力 int NULL,水战力 int NULL,山战力 int NULL,城战力 int NULL, CONSTRAINT PK_兵种 PRIMARY KEY CLUSTERED

8、(兵种名 ASC)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON PRIMARY) ON PRIMARYCREATE TABLE dbo.关系(武将名 char(20) NULL,关系 char(20) NULL,关系武将 char(20) NULL) ON PRIMARYCREATE TABLE dbo.太守(镇守城 char(20) NULL,名字 char(20) NOT NULL,战力值 int NULL,农业值 int NULL) ON PRIMARYCREATE TABLE dbo.武将(武将名 char(20) NOT NULL,武

9、力 int NULL,智力 int NULL,势力 char(20) NULL,驻守城 char(20) NULL, CONSTRAINT PK_武将 PRIMARY KEY CLUSTERED (武将名 ASC)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON PRIMARY) ON PRIMARYCREATE TABLE dbo.军团(军团名 char(20) NOT NULL,军团长 char(20) NULL,所属势力 char(20) NULL, CONSTRAINT PK_军团 PRIMARY KEY CLUSTERED (军团名 AS

10、C)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON PRIMARY) ON PRIMARYCREATE TABLE dbo.城池(城池名 char(20) NOT NULL,太守名 char(20) NULL,军团名 char(20) NULL,势力名 char(20) NULL,兵数 int NULL, CONSTRAINT PK_城池 PRIMARY KEY CLUSTERED (城池名 ASC)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON PRIMARY) ON PRIMARYCREATE

11、TABLE dbo.部队(部队名 char(20) NOT NULL,驻扎城池 char(20) NULL,兵种 char(20) NULL, CONSTRAINT PK_部队 PRIMARY KEY CLUSTERED (部队名 ASC)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON PRIMARY) ON PRIMARY关系语句:ALTER TABLE dbo.关系 WITH CHECK ADD CONSTRAINT FK_关系_武将 FOREIGN KEY(武将名)REFERENCES dbo.武将 (武将名)ALTER TABLE dbo

12、.关系 CHECK CONSTRAINT FK_关系_武将ALTER TABLE dbo.太守 WITH CHECK ADD CONSTRAINT FK_太守_城池 FOREIGN KEY(镇守城)REFERENCES dbo.城池 (城池名)ALTER TABLE dbo.太守 CHECK CONSTRAINT FK_太守_城池ALTER TABLE dbo.太守 WITH CHECK ADD CONSTRAINT FK_太守_武将 FOREIGN KEY(名字)REFERENCES dbo.武将 (武将名)ALTER TABLE dbo.太守 CHECK CONSTRAINT FK_太守_

13、武将ALTER TABLE dbo.武将 WITH CHECK ADD CONSTRAINT FK_武将_城池 FOREIGN KEY(驻守城)REFERENCES dbo.城池 (城池名)ALTER TABLE dbo.武将 CHECK CONSTRAINT FK_武将_城池ALTER TABLE dbo.武将 WITH CHECK ADD CONSTRAINT FK_武将_势力 FOREIGN KEY(势力)REFERENCES dbo.势力 (势力名)ALTER TABLE dbo.武将 CHECK CONSTRAINT FK_武将_势力ALTER TABLE dbo.军团 WITH C

14、HECK ADD CONSTRAINT FK_军团_势力 FOREIGN KEY(所属势力)REFERENCES dbo.势力 (势力名)ALTER TABLE dbo.军团 CHECK CONSTRAINT FK_军团_势力ALTER TABLE dbo.城池 WITH CHECK ADD CONSTRAINT FK_城池_军团 FOREIGN KEY(军团名)REFERENCES dbo.军团 (军团名)ALTER TABLE dbo.城池 CHECK CONSTRAINT FK_城池_军团ALTER TABLE dbo.部队 WITH CHECK ADD CONSTRAINT FK_部队

15、_兵种 FOREIGN KEY(兵种)REFERENCES dbo.兵种 (兵种名)ALTER TABLE dbo.部队 CHECK CONSTRAINT FK_部队_兵种ALTER TABLE dbo.部队 WITH CHECK ADD CONSTRAINT FK_部队_城池 FOREIGN KEY(驻扎城池)REFERENCES dbo.城池 (城池名)ALTER TABLE dbo.部队 CHECK CONSTRAINT FK_部队_城池七、 SQL部分1. 查看蜀国城池情报select * from 城池where 势力名='蜀'2.零陵增兵30000update 城池

16、set 兵数=(select 新兵数=a.兵数+30000 from (select 兵数 from 城池where 城池名='零陵') a )where 城池名='零陵'3. 零陵攻城部队选择列表的查询select a.武将名,a.武力,a.智力,b.部队名,b.兵种from(select * from 武将where 驻守城='零陵') a,(select * from 部队where 驻扎城池='零陵') b4.假如选择 卢鹏州-零陵1 生成新表需要新查询select a.武将名,a.武力,a.智力,b.部队名,b.兵种fr

17、om(select * from 武将where 驻守城='零陵') a,(select * from 部队where 驻扎城池='零陵') bwhere a.武将名<>'卢鹏州' and b.部队名<>'零陵1'5.列出所有可能的吴魏两国武将配对 显示两名武将的所在城池 以及武力差值select a.武将名,a.驻守城,b.武将名,b.驻守城,difference=(a.武力-b.武力)from 武将a , 武将bwhere a.武将名<>b.武将名and a.武力>b.武力and a.

18、势力='魏' and b.势力='吴'6.假设武力和智力与兵数的换算是1:20,与在零陵的卢鹏州相比更为有实力的是,输出城池和武将(重新设置零陵兵力为12000)select a.武将名,a.驻守城,a.总兵数 ,b.武将名,b.驻守城,b.总兵数from(select 武将名,驻守城,总兵数=(20*(武力+智力)+兵数) from 武将,城池where 驻守城=城池名)a,(select 武将名,驻守城,总兵数=(20*(武力+智力)+兵数) from 武将,城池where 驻守城=城池名)bwhere a.武将名='卢鹏州' and a.总兵数<b.总兵数7.不在同一势力却有朋友关系的武将,输出武将和势力select a.武将名,a.势力,b.武将名,b.势力,关系from 关系,武将a ,武将bwhere 关系.武将名=a.武将名and 关系武将=b.武将名and a.势力<>b.势力8.输出在地面上实力最强的城池部队(包括太守的能力值)select 战力=(地战力+战力值),镇守城,部队名,兵种,势力from 部队,兵种,太守,武将where 兵种=兵种名and 镇守城=驻扎城池and 名字=武将名and 势力='魏' order by 战力de

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论