PHP:将共享用户数据作为 JSON 字符串存储在 MySQL 中的想法有多糟糕?
Posted
技术标签:
【中文标题】PHP:将共享用户数据作为 JSON 字符串存储在 MySQL 中的想法有多糟糕?【英文标题】:PHP: How bad of an idea is it to store shared user data in MySQL as a JSON string? 【发布时间】:2015-03-03 14:10:47 【问题描述】:我正在开发一个简单的多人游戏,一次可能有 2 到 6 个人玩游戏。该游戏仅比五张抽牌扑克稍微复杂一点,因此资源消耗不是很大。
为了使开发变得快速和简单,我正在考虑有一个这样的表:(简化)
games
id (int) primary-key auto-inc > unique id
data (text) > for storing a JSON string
这是我对这个过程的想法:
AJAX 帖子包含game_id
字段
做一些权限检查和验证
我从 games
获取条目,id
等于 game_id
json_decode data
字段
更多权限和验证内容
如果对游戏数据进行了更改:json_encode 新数据并更新 DB
问题:我这样做会遇到什么陷阱?
【问题讨论】:
Storing Data in mysql as JSON 的可能重复项 不是重复的......我没有问任何关于 CouchDB 的问题,我也不是关于 JSON 的“n00b”问题。 【参考方案1】:有些人会这样做,这就是您要面对的情况(1) 每次您需要更新用户数据时,您都必须解码 json 数据,编辑它然后存储它(要检索更多数据,要存储更多数据 => 更多处理)(2) 忘记使用 MySQL 查询进行数据聚合,您将不得不这样做通过 php 或您使用的任何语言手动完成
我不能说在 MySQL 中存储 JSON 是好还是坏,这取决于应用程序域和您的使用
【讨论】:
(1) 与使用标准关系数据库请求相比,我可以预期性能会受到影响……但可以说,如果每个解码/编码都替换了多个选择/插入/更新的使用,它可能会抵消这一点。 (2) 非常有力和充分的理由不按照我的想法去做。谢谢阿卜杜!以上是关于PHP:将共享用户数据作为 JSON 字符串存储在 MySQL 中的想法有多糟糕?的主要内容,如果未能解决你的问题,请参考以下文章
PHP/MySQL - 将数组数据存储为 JSON,不好的做法?