一.數據庫需求分析
通過游戲過程中所需元素,設計如下數據項和數據結構
1.角色,包括的數據項有:用戶ID,角色ID,角色昵稱,(通用屬性,角色屬性)
2.角色屬性,包括的數據項有:力量,智力,敏捷,經驗值,職業,角色ID
3.通用屬性,包括的數據項有:生命值,魔法值,攻擊力,護甲值,魔抗值,主人ID
4.怪物信息,包括的數據項有:怪物ID,(通用屬性,NPC屬性)
5.NPC屬性,包括的數據項有:出生地點,活動范圍,功能,主人ID
6.用戶信息,包括的數據項有:用戶ID,用戶密碼,用戶郵箱,登陸地址,登陸時間
7.裝備,包括的數據項有:裝備名稱,裝備描述,(通用屬性),裝備ID,主人ID
8.技能,包括的數據項有:技能名稱,基礎傷害,加成類型,加成比例,冷卻時間,學習等級
二.數據庫概念結構設計
三.數據庫邏輯結構設計
角色 | ||||
---|---|---|---|---|
字段名 | 數據類型 | 長度 | 是否為NULL | 描述 |
YHID | INT | 8 | 不為NULL,外鍵 | 創建該角色的用戶ID |
JSID | INT | 8 | 不為NULL,主鍵 | 該角色的ID |
JSNC | CHAR | 8 | 不為NULL | 角色昵稱 |
角色屬性 | ||||
---|---|---|---|---|
字段名 | 數據類型 | 長度 | 是否為NULL | 描述 |
ID | INT | 8 | 不為NULL,外鍵 | 擁有該屬性的角色ID |
LL | INT | 3 | 不為NULL | 力量 |
ZL | INT | 3 | 不為NULL | 智力 |
MJ | INT | 3 | 不為NULL | 敏捷 |
JYZ | INT | 3 | 不為NULL | 經驗值 |
ZY | CHAR | 4 | 不為NULL | 職業 |
通用屬性 | ||||
---|---|---|---|---|
字段名 | 數據類型 | 長度 | 是否為NULL | 描述 |
SMZ | INT | 3 | 不為NULL | 生命值 |
MFZ | INT | 3 | 不為NULL | 魔法值 |
GJL | INT | 3 | 不為NULL | 攻擊力 |
HJZ | INT | 3 | 不為NULL | 護甲值 |
MKZ | INT | 3 | 不為NULL | 魔抗值 |
ID | INT | 8 | 不為NULL,外鍵 | 擁有該屬性的ID |
怪物 | ||||
---|---|---|---|---|
字段名 | 數據類型 | 長度 | 是否為NULL | 描述 |
ID | INT | 8 | 不為NULL,主鍵 | 怪物ID |
NPC屬性 | ||||
---|---|---|---|---|
字段名 | 數據類型 | 長度 | 是否為NULL | 描述 |
ID | INT | 8 | 不為NULL,外鍵 | 擁有該屬性的ID |
CSDD | CHAR | 8 | 不為NULL | 出生地點 |
HDFF | INT | 3 | 不為NULL | 活動范圍 |
GN | CHAR | 3 | 可空,商人,任務發布者,怪物等 | 功能 |
用戶信息 | ||||
---|---|---|---|---|
字段名 | 數據類型 | 長度 | 是否為NULL | 描述 |
YHID | INT | 8 | 不為NULL,主鍵 | 用戶ID |
YHMM | CHAR | 8 | 不為NULL | 用戶密碼 |
YHYX | CHAR | 8 | 不為NULL | 用戶郵箱 |
DLDZ | CHAR | 8 | 可NULL | 登陸地址 |
DLSJ | CHAR | 8 | 可NULL | 登陸時間 |
裝備 | ||||
---|---|---|---|---|
字段名 | 數據類型 | 長度 | 是否為NULL | 描述 |
ZBID | INT | 8 | 不為NULL,主鍵 | 裝備ID |
ZRID | INT | 8 | 不為NULL,外鍵 | 擁有該裝備的角色ID |
ZBMC | CHAR | 8 | 不為NULL | 裝備名稱 |
ZBMS | CHAR | 8 | 可NULL | 裝備描述 |
技能 | ||||
---|---|---|---|---|
字段名 | 數據類型 | 長度 | 是否為NULL | 描述 |
ID | INT | 8 | 不為NULL,外鍵 | 擁有該技能的角色ID |
JNMC | CHAR | 8 | 不為NULL | 技能名稱 |
JCSS | INT | 8 | 不為NULL | 基礎傷害 |
JCLX | CHAR | 2 | 不為NULL,物理,魔法 | 加成類型 |
JCBL | INT | 2 | 可為NULL | 加成比例 |
LQSJ | INT | 3 | 不為NULL | 冷卻時間 |
XXDJ | INT | 3 | 可為NULL | 學習等級 |
四.數據庫物理結構設計
根據以上邏輯分析所得到的表的關系,我們使用SQL語言設計得到數據庫和數據表,如下:
1.創建數據庫RPGdatabase
CREATE DATABASE RPGdatabase;
2.創建角色數據表
CREATE TABLE Players(
YHID INTEGER NOT NULL,
JSID INTEGER NOT NULL,
JSNC CHAR(8) NOT NULL,
PRIMARY KEY(JSID)
FOREIGN KEY(YHID) REFERENCES(Users)
)
3.創建角色屬性數據表
CREATE TABLE PAttributes(
ID INTEGER NOT NULL,
LL INTEGER NOT NULL,
ZL INTEGER NOT NULL,
MJ INTEGER NOT NULL,
JYZ INTEGER NOT NULL,
ZY CHAR(4) NOT NULL,
FOREIGN KEY(ID) REFERENCES(Players)
)
4.創建通用屬性數據表
CREATE TABLE PAttributes(
ID INTEGER NOT NULL,
SMZ INTEGER NOT NULL,
MFZ INTEGER NOT NULL,
GJL INTEGER NOT NULL,
HJZ INTEGER NOT NULL,
MKZ INTEGER NOT NULL,
FOREIGN KEY(ID) REFERENCES(Players)
)
5.創建怪物數據表
CREATE TABLE Monsters(
ID INTEGER NOT NULL,
PRIMARY KEY(ID)
)
6.創建NPC屬性數據表
CREATE TABLE NpcAttributes(
ID INTEGER NOT NULL,
CSDD CHAR(8) NOT NULL,
HDFF INTEGER NOT NULL,
GN CHAR(3),
FOREIGN KEY(ID) REFERENCES(Players)
)
7.創建用戶信息數據表
CREATE TABLE Users(
YHID INTEGER NOT NULL,
YHMM CHAR(8) NOT NULL,
YHYX CHAR(8) NOT NULL,
DLDZ CHAR(8),
DLSJ CHAR(8),
PRIMARY KEY(YHID)
)
8.創建裝備信息數據表
CREATE TABLE Equips(
ZBID INTEGER NOT NULL,
ZRID INTEGER NOT NULL,
ZBMC CHAR(8) NOT NULL,
ZBMS CHAR(8),
PRIMARY KEY(ZBID)
FOREIGN KEY(ZRID) REFERENCES(Players)
)
9.創建技能信息數據表
CREATE TABLE Skills(
ID INTEGER NOT NULL,
JCSS INTEGER NOT NULL,
JNMC CHAR(8) NOT NULL,
JCLX CHAR(2) NOT NULL,
JCBL INTEGER,
LQSJ INTEGER NOT NULL,
XXDJ INTEGER,
FOREIGN KEY(ID) REFERENCES(Players)
)