RPG游戏数据库设计

一.数据库需求分析

通过游戏过程中所需元素,设计如下数据项和数据结构
1.角色,包括的数据项有:用户ID,角色ID,角色昵称,(通用属性,角色属性)
2.角色属性,包括的数据项有:力量,智力,敏捷,经验值,职业,角色ID
3.通用属性,包括的数据项有:生命值,魔法值,攻击力,护甲值,魔抗值,主人ID
4.怪物信息,包括的数据项有:怪物ID,(通用属性,NPC属性)
5.NPC属性,包括的数据项有:出生地点,活动范围,功能,主人ID
6.用户信息,包括的数据项有:用户ID,用户密码,用户邮箱,登陆地址,登陆时间
7.装备,包括的数据项有:装备名称,装备描述,(通用属性),装备ID,主人ID
8.技能,包括的数据项有:技能名称,基础伤害,加成类型,加成比例,冷却时间,学习等级

二.数据库概念结构设计

RPG游戏数据库设计_第1张图片
角色E-R图.PNG
RPG游戏数据库设计_第2张图片
角色属性E-R图.PNG
RPG游戏数据库设计_第3张图片
通用属性E-R图.PNG
RPG游戏数据库设计_第4张图片
怪物信息E-R图.PNG
RPG游戏数据库设计_第5张图片
NPC属性E-R图.PNG
RPG游戏数据库设计_第6张图片
用户信息E-R图.PNG
RPG游戏数据库设计_第7张图片
装备E-R图.PNG
RPG游戏数据库设计_第8张图片
技能E-R图.PNG
RPG游戏数据库设计_第9张图片
实体间联系E-R图.PNG

三.数据库逻辑结构设计

角色
字段名 数据类型 长度 是否为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)
)

你可能感兴趣的:(RPG游戏数据库设计)