-1

所以基本上我有游戏角色

Gender,

Race,

Items, //this is an array

Skills, //another array

Inventory //another array

所以我想将它们存储在一个 json 对象中。但这会很快吗?

所以在桌子上会是这样的

id | js

1  | jsondata

这是完成数据保存的好方法吗?

4

1 回答 1

1

我可以想到这种方法的一些缺点:

  • (此项适用于编辑前的原始问题,其方法是将 JavaScript 代码 ( var gender='male'; ...) 存储在数据库列中)您正在执行数据。如果他们可以修改 blob,这基本上让人们可以自由支配将他们想要的任何代码注入您的应用程序。

  • 它需要解析 JavaScript。如果稍后您决定希望在不同的非 js 环境(例如本机或托管应用程序)中运行游戏,您将不得不解析 blob,或者稍后对其进行转换。

  • 数据不是结构化的,不可编辑/可零碎地检索,并且是任意长度的。您每次都必须检索和执行整个 blob,并且为了保存状态,您必须将整个 blob 作为单个块发送和更新。例如,如果您使用的是数据库,则将每个库存项目保存为单独的行会更有效。当玩家使用该物品时,您可以发送单个查询来更新一行,并且库存会立即更改。使用您的方法,您需要将整个游戏状态发送回服务器。

    如果您想使用数据库引擎进行搜索,这将适得其反。想想排行榜、统计数据、查找谁拥有哪个项目等。

    您也不能使用数据库引擎来维护数据完整性(检查或外键约束)

  • (此项目适用于编辑前的原始问题,其方法是将 JavaScriptvar gender='male'; ...代码(或者坦率地说,为什么首先要执行动态代码。如果您正在加载数据,则存储数据(即 JSON)并对其进行解析。

于 2013-09-20T03:02:02.600 回答