RPG游戏数据库设计

一.数据库需求分析

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

二.数据库概念结构设计

角色E-R图.PNG
角色属性E-R图.PNG
通用属性E-R图.PNG
怪物信息E-R图.PNG
NPC属性E-R图.PNG
用户信息E-R图.PNG
装备E-R图.PNG
技能E-R图.PNG
实体间联系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)
)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,505评论 18 399
  • MySQL 数据库常用命令 1、MySQL常用命令 create database name; 创建数据库 use...
    55lover阅读 4,757评论 1 57
  • MySQL5.6从零开始学 第一章 初始mysql 1.1数据库基础 数据库是由一批数据构成的有序的集合,这些数据...
    星期四晚八点阅读 1,117评论 0 4
  • 应该是2003年吧,红色性格的我那时候还在城南小学上着一年级,那时候学习成绩还不错,还是小组组长,每天上下学有接送...
    MrKang丶阅读 279评论 0 1
  • 记不清是哪个傍晚,下班吃完饭回到办公桌前坐着,夏天的夜晚总来得特别迟,六点窗外仍是亮堂堂的,我抬头,看着头顶的荧...
    无邪居阅读 216评论 0 0