一.数据库需求分析
通过游戏过程中所需元素,设计如下数据项和数据结构
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)
)