【正文】
0) 退出:用戶退出游戲。 重慶大學(xué)本科學(xué)生畢業(yè)設(shè)計(論文) 3 系統(tǒng)設(shè)計 8 3 系統(tǒng)設(shè)計 MySQL 概述 MySQL是一個高性能、多線程、多用戶、建立在客戶 服務(wù)器結(jié)構(gòu) 上的 RDBMS,專門為了速度和穩(wěn)定性而設(shè)計。現(xiàn)今,有超過 400 萬的網(wǎng)站建立、使用并且配置了基于 MySQL 的應(yīng)用程序,而且網(wǎng)站的數(shù)量每天都在增加。簡而言之,它無處不在,它的應(yīng)用將會變得更廣泛。相對于像 Oracle 和 Microsoft SQL Server一樣的更商業(yè)化、非開放源代碼的系統(tǒng)來說,快速、健壯和友好的數(shù)據(jù)庫 引擎、高級的數(shù)據(jù)管理和恢復(fù)工具、不斷改進(jìn)的特性合集、遵守現(xiàn)有的 SQL標(biāo)準(zhǔn)、友好的商業(yè)許可原則,都是促成 MySQL成為可實施的選擇因素。 MySQL 始終圍繞三個基本原則而設(shè)計,它們是:性能、可靠性和容易使用。 今天, MySQL 的主要應(yīng)用程序出現(xiàn)在網(wǎng)絡(luò)舞臺上,這并不令人吃驚。因此,我們迫切需要一個速度快、性能穩(wěn)定和安全的數(shù)據(jù)庫(可以非常省心地配置和使用它,并且為將來的發(fā)展奠定堅實的基礎(chǔ))。經(jīng)過證實的記錄讓它的可靠性和壽命得到保證,開放源代碼的根本能夠確保迅速調(diào)整缺陷和性能持續(xù)增強(qiáng)大周期(更不必提及較低的總體擁有成本);對不同編程語言和技術(shù)的可移植性 和支持,使它適合多種應(yīng)用程序。 數(shù)據(jù)庫概念設(shè)計 概念設(shè)計: 對用戶要求描述的現(xiàn)實世界 ( 可能是一個工廠、一個商場或者一重慶大學(xué)本科學(xué)生畢業(yè)設(shè)計(論文) 3 系統(tǒng)設(shè)計 9 個學(xué)校等 ) ,通過對其中住處的分類、聚集和概括,建立抽象的概念數(shù)據(jù)模型。所建立的模型應(yīng)避開數(shù)據(jù)庫在計算機(jī)上的具體實現(xiàn)細(xì)節(jié),用一種抽象的形式表示出來。第二步再將前面得到的多個用戶的局部視圖集成為一個全局視圖,即用戶要描述的現(xiàn)實世界的概念數(shù)據(jù)模型 。用戶注冊賬號時產(chǎn)生這些信息,每局游戲結(jié)束后將更新相應(yīng)信息。 A c c o u n tP K A c c o u n tI d U s e r N a m e P a s s w o r d E x p e r ie n c e M o n e y L e v e l C u r S h ip A c c e s s I d 圖 表 Account 屬性 1) AccountId:用戶賬號 id; 2) UserName:用戶名字; 3) Password:用戶密碼; 4) Experience:用戶經(jīng)驗; 5) Money:用戶金錢; 6) Level:用戶等級; 7) CurShipAccessId:用戶當(dāng)前戰(zhàn)艦 id。用戶買入、接收道具以及對道具進(jìn)行各種操作時,這些數(shù)據(jù)將更新。 重慶大學(xué)本科學(xué)生畢業(yè)設(shè)計(論文) 3 系統(tǒng)設(shè)計 10 T h in gP K T h in g Id A c c o u n tId T h in g T y p e b B in d b In sta lle d A c tiv e T im e A c c e ssId S h ip A c c e ssId E m p la c e In d e x 圖 表 Thing屬性 1) ThingId: 用戶物品 id; 2) AccountId:用戶物品所屬用戶 id; 3) ThingType:用戶物品類型; 4) bBind:用戶物品是否綁定; 5) bInstalled:用戶物品是否激活 。 ③ HSGCVerifyCode: 臨時存儲 用戶登陸驗證信息 (如圖 )。 H S G C V e r if y C o d eP K H S G C V e r if y C o d e I d A c c o u n t I d V e r if y C o d e 圖 表 HSGCVerifyCode 屬性 1) HSGCVerifyCodeId:登錄驗證 Id; 2) AccountId:登錄用戶的 Id; 3) VerifyCode:驗證碼。用戶贈送禮物時,會產(chǎn)生相應(yīng)信息,被贈送用戶會在相應(yīng)界面看到這些信息。它們包括: ⑤ ShipAccess: 存儲 游戲中戰(zhàn)艦的信息 (如圖 ) 。 重慶大學(xué)本科學(xué)生畢業(yè)設(shè)計(論文) 3 系統(tǒng)設(shè)計 12 R o leA ccessP K R o leA ccessId G o o d s to n n a g e o p era te L o a d B u llet 圖 表 RoleAccess 屬性 ⑦ GunAccess: 存儲 游戲中戰(zhàn)艦上武器的信息 (如圖 ) 。 I te m A c c e s sP K I t e m A c c e s s I d G o o d s U s e C o u n t P lu s M o d e T a r g e t D if f 1 T a r g e t D if f 2 T a r g e t T y p e V a lu e V a lu e A c c M o d e V a lu e C o n t in u e M o d e P lu s T im e R e g io n R 圖 表 ItemAccess 屬性 重慶大學(xué)本科學(xué)生畢業(yè)設(shè)計(論文) 3 系統(tǒng)設(shè)計 13 ⑨ EmplaceAccess: 存儲 戰(zhàn)艦位置信息 (如圖 ) 。與此同時,可重慶大學(xué)本科學(xué)生畢業(yè)設(shè)計(論文) 3 系統(tǒng)設(shè)計 15 能還需為各種數(shù)據(jù)處理應(yīng)用領(lǐng)域產(chǎn)生相應(yīng)的邏輯子模式。 [6] 在數(shù)據(jù)庫概念設(shè)計完成之后,我們可進(jìn)行數(shù)據(jù)庫邏輯設(shè)計。 在 MySQL Command Line Client 中執(zhí)行如下命令: 執(zhí)行完畢后,數(shù)據(jù)庫 ocean 創(chuàng)建成功。 在 MySQL Command Line Client 中執(zhí)行如下命令: 執(zhí)行完畢后,提示數(shù)據(jù)庫連接成功。 在 MySQL Command Line Client 中執(zhí)行如下命令: CREATE TABLE `account` ( `AccountId` int (10) unsigned NOT NULL auto_increment, `UserName` varchar (45) character set latin1 NOT NULL, `Password` varchar (45) character set latin1 NOT NULL, `Experience` int (10) unsigned NOT NULL, `Money` int (10) unsigned NOT NULL, `Level` int (10) unsigned NOT NULL, `CurShipAccessId` int (10) unsigned NOT NULL, PRIMARY KEY (`AccountId`) ) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8。(如圖 ) 圖 表 account ④ 在數(shù)據(jù)庫 ocean 中創(chuàng)建表 gift。(如圖 ) CREATE TABLE `gift` ( `GiftId` int (10) unsigned NOT NULL auto_increment, `AccountId` int (10) unsigned NOT NULL, `ThingType` int (10) unsigned NOT NULL, `AccessId` int (10) unsigned NOT NULL, `Benefator` varchar (45) NOT NULL, `DescText` varchar (45) NOT NULL, PRIMARY KEY (`GiftId`) ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8。 在 MySQL Command Line Client 中執(zhí)行如下命令: 執(zhí)行完畢后,表 hsgcverifycode 創(chuàng)建成功。 在 MySQL Command Line Client 中執(zhí)行如下命令: CREATE TABLE `hsgcverifycode` ( `HSGCVerifyCodeId` int (10) unsigned NOT NULL auto_increment, `AccountId` int (10) unsigned NOT NULL, `VerifyCode` int (10) unsigned NOT NULL, PRIMARY KEY (`HSGCVerifyCodeId`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1。(如圖 ) 圖 表 thing CREATE TABLE `thing` ( `ThingId` int (10) unsigned NOT NULL auto_increment, `AccountId` int (10) unsigned NOT NULL, `ThingType` int (10) unsigned NOT NULL, `bBind` int (10) unsigned NOT NULL, `bInstalled` int (10) unsigned NOT NULL, `ActiveTime` int (10) unsigned NOT NULL, `AccessId` int (10) unsigned NOT NULL, `ShipAccessId` int (10) unsigned NOT NULL, `EmplaceIndex` int (10) unsigned NOT NULL, PRIMARY KEY (`ThingId`) ) ENGINE=InnoDB AUTO_INCREMENT=67 DEFAULT CHARSET=latin1。(如圖 ) 登 陸 器游 戲 客 戶 端登 錄 服 務(wù) 器大 廳 服 務(wù) 器游 戲 服 務(wù) 器數(shù) 據(jù) 庫 處 理 服 務(wù) 器數(shù) 據(jù) 庫登錄啟動選 擇 大 廳更換大廳查詢、操作房間內(nèi)游戲調(diào)配游 戲 邏 輯 交 互游 戲開 始通 知房 間信 息游戲結(jié)束返回結(jié)果登錄驗證房間維護(hù)數(shù)據(jù)庫操作返回結(jié)果版本更新 圖 系統(tǒng)架構(gòu)圖 從圖我們可以看出系統(tǒng)各個部分的工作情況以及數(shù)據(jù)的交互情況。其中包括: 用戶由登錄器客戶端登陸登錄服務(wù)器時,登錄服務(wù)器請求數(shù)據(jù)庫服務(wù)器執(zhí)行登陸驗證操作,數(shù)據(jù)庫服務(wù)器再對數(shù)據(jù)庫進(jìn)行查詢操作,并返回查詢結(jié)果。其中包括: 1) 用戶由游戲客戶端登陸大廳服務(wù)器時,大廳服 務(wù)器請求數(shù)據(jù)庫服務(wù)器執(zhí)行登陸驗證操作,數(shù)據(jù)庫服務(wù)器再對數(shù)據(jù)庫進(jìn)行查詢操作,并返回查詢結(jié)果。 3) 用戶對物品進(jìn)行查詢、配置、激活、丟棄、購買、贈送、接收時,大廳服務(wù)器請求數(shù)據(jù)庫服務(wù)器執(zhí)行相應(yīng)操作,數(shù)據(jù)庫服務(wù)器在對數(shù)據(jù)局進(jìn)行相應(yīng)的操作,并返回操作后的結(jié)果。 5) 用戶退出游戲時,大廳服務(wù)器請求數(shù)據(jù)庫執(zhí)行退出操作,數(shù)據(jù)庫服務(wù)器再對數(shù)據(jù)庫進(jìn)行相應(yīng)的刪除數(shù)據(jù)操作。之所以是這樣,主要是因為這類網(wǎng)絡(luò)對戰(zhàn)游戲不需要在游戲過程中實時更新數(shù)據(jù),可以通過大廳服務(wù)器,在一局游戲結(jié)束后,再進(jìn)行游戲數(shù)據(jù)的更新。 下面,我們結(jié)合系統(tǒng)需求,對架構(gòu)圖進(jìn)行詳細(xì)的分析: 表 術(shù)語表 縮寫 全寫 定義 LC Login Client 登陸器客戶端 LS Login Server 登錄服務(wù)器 GC Game Client 游戲客戶端 HS Hall Server 大廳服務(wù)器 DS DB Server 數(shù)據(jù)庫處理服務(wù)器 GS Game Server 游戲服務(wù)器 DB Data Base 數(shù)據(jù)庫 1) LC 登陸 LS 時, LS 請求 DS 進(jìn)行驗證,驗證內(nèi)容為用戶名和密碼 2 項。 如果驗證成功,則數(shù)據(jù)庫中產(chǎn)生一個 HSGC驗證碼, 并 然后反饋驗證結(jié)果。(如圖 ) 重慶大學(xué)本科學(xué)生畢業(yè)設(shè)計(論文) 4 系統(tǒng)難點(diǎn)技術(shù)分 析與設(shè)計 21 L CL SD S登 錄請 求 驗 證( 用 戶 名 和 密 碼 )查