Javascript 在SQL中存储游戏数据
所以基本上我有游戏中的角色Javascript 在SQL中存储游戏数据,javascript,mysql,sql,html,game-engine,Javascript,Mysql,Sql,Html,Game Engine,所以基本上我有游戏中的角色 Gender, Race, Items, //this is an array Skills, //another array Inventory //another array 所以我考虑将它们存储在json对象中。但那会很快吗 所以在桌子上应该是这样的 id | js 1 | jsondata 这是实现数据保存的好方法吗?这种方法的一些缺点我可以马上想到: (此项适用于编辑之前的原始问题,其方法是在数据库列中存储JavaScript代码(var
Gender,
Race,
Items, //this is an array
Skills, //another array
Inventory //another array
所以我考虑将它们存储在json对象中。但那会很快吗
所以在桌子上应该是这样的
id | js
1 | jsondata
这是实现数据保存的好方法吗?这种方法的一些缺点我可以马上想到:
- (此项适用于编辑之前的原始问题,其方法是在数据库列中存储JavaScript代码(
)。这基本上使人们可以自由地将他们想要的任何代码注入到您的应用程序中,如果他们可以修改blob的话var gender='male';…
- 它需要对JavaScript进行解析。如果以后决定在不同的非js环境(例如,本机或托管应用程序)中运行游戏,则必须解析blob,或稍后转换它
- 数据不是结构化的,不可编辑/逐段检索,并且具有任意长度。每次都必须检索和执行整个blob,为了保存状态,必须将整个blob作为单个块发送和更新。例如,如果您使用的是数据库,那么将每个库存项目保存为单独的行将更加高效。当播放器使用该项目时,您可以发送一个查询来更新一行,库存将立即更改。使用这种方法,您需要将整个游戏状态发送回服务器 如果您想使用数据库引擎进行搜索,这将适得其反。考虑排行榜、统计数据、查找谁拥有哪个项目等 也不能使用数据库引擎维护数据完整性(检查或外键约束)
- (此项适用于编辑之前的原始问题,其中方法是将JavaScript代码(
)存储在数据库列中)您必须从现有对象生成代码,那么为什么要这样做呢?或者坦率地说,为什么要首先执行动态代码呢。如果您正在加载数据,则存储数据(即JSON)并对其进行解析var gender='male';…