将JSON数据存储在MySQL表行中是否可以接受?我需要将数组存储在mysql数据库中。问题是,我不知道每个用户需要多少列。所以我想将JSON存储在一个名为array
的行中作为例子。这是最好的方法吗?在MySQL数据库中存储JSON?
编辑:
而且,我使用text
为表列类型。
将JSON数据存储在MySQL表行中是否可以接受?我需要将数组存储在mysql数据库中。问题是,我不知道每个用户需要多少列。所以我想将JSON存储在一个名为array
的行中作为例子。这是最好的方法吗?在MySQL数据库中存储JSON?
编辑:
而且,我使用text
为表列类型。
是的,它使用MySQL作为一个key-value存储一个非常好的主意,事实上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 /数据。你做SELECT ...
,做你的编辑,然后INSERT ... ON DUPLICATE KEY UPDATE ...
。
OP可能需要查询JSON中的一些数据,所以这可能不是最好的想法。 – 2013-03-13 20:08:25
恩,这不是问题... – Gustav 2013-03-13 20:17:00
是的,我知道。他补充说,作为对这个问题的评论。 – 2013-03-13 20:17:29
这不是问题。 mySQL已经可以处理其文本字段中的大部分括号和时髦字符。
我认为不是。大约四个月后,你决定为你的实体添加一个新的属性或从你的实体中删除一些属性?你将如何解析你的旧JSON内容?如果您不知道表格中需要多少列,则应该用不同的方式思考,也许可以创建一个像使用user_column表一样的动态结构。
在关系数据库字段中存储多条数据通常是错误的。可以考虑可接受的情况,但不能存储整个用户。
如果使用关系数据库结构是不够的,你可能想看看的MySQL数据库的NoSQL inestead。
如果你肯定知道你永远,永远需要用JSON数据做任何事情(如查询里面的特定属性),为什么不......但它不是真的在任何情况下很好的做法。 – 2013-03-13 20:02:37
为什么你需要不同的用户数量不同的列? – beny23 2013-03-13 20:02:55
@Pekka웃我确实需要它 – user1947561 2013-03-13 20:04:05