在MySQL数据库中存储JSON?

时间:2013-03-13 20:00:45

标签: php mysql json

将JSON数据存储在MySQL表行中是否可以接受?我需要将数组存储在mysql数据库中。问题是,我不知道每个用户需要多少列。所以我想将JSON存储在一个名为array的行中作为例子。这是最好的方式吗?

编辑:

另外,我使用text作为表列类型。

4 个答案:

答案 0 :(得分:12)

是的,使用mysql作为键值存储是一个非常好的主意,事实上facebook确实可以用于某些用途。

CREATE TABLE `json` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
    `data` blob NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

上面的表结构会让你走得更远。分片或群集非常容易。

编辑:这里的重点是使用PHP,Ruby等来处理json / data。您执行SELECT ...,进行编辑,然后INSERT ... ON DUPLICATE KEY UPDATE ...

答案 1 :(得分:2)

在关系数据库字段中存储多个数据通常是错误的。可以考虑可以接受的情况,但不能考虑存储整个用户的情况。

如果使用关系数据库结构不够,您可能需要查看NoSQL数据库而不是MySQL。

答案 2 :(得分:0)

这不是问题。 mySQL已经可以处理文本字段中的大多数括号和时髦字符。

答案 3 :(得分:0)

我认为不是。那么四个月后你决定为你的实体添加一个新属性还是从你的实体中删除一些属性?你将如何解析旧的json内容?如果您不知道表中需要多少列,您应该以不同的方式思考并创建一个动态结构,例如使用user_column表