使用PHP将JSON保存到mySQL

时间:2013-03-28 00:21:25

标签: php mysql json

我需要将一组数据保存到MySQL。但是数组的长度不固定。

数组可能是这样的:

array(key1 => value1)

或喜欢

array(key1 => value1, key2=> value2)

等等。

如果它是一个固定长度的数组,那么JOIN可以解决问题。 我正在考虑将其保存为JSON字符串

数据表就像:

id -- context -- content (JSON Str)

这是个好主意吗?有没有更好的方法来做到这一点?
谢谢

4 个答案:

答案 0 :(得分:3)

您可能需要考虑一个单独的表,稍后可以更容易查询。

data [table]
- id
- context

data_items [table]
- data_id [foreign_key]
- key
- value

在数组中插入尽可能多的data_items记录,并链接到一个数据记录。

答案 1 :(得分:1)

是的,最好将数组数据存储在JSON中。序列化更加便携,而且根据我的经验,它更好地处理UTF-8字符。

FTR我通常不会在数据库中存储大量的“内容”数据,而是选择像MongoDB这样的针/ haystack文件存储。

答案 2 :(得分:1)

如果您确实知道您不需要访问json字符串中的任何数据,并且您将永远不会尝试根据此信息访问任何行,那么将其存储为json字符串可能会有效。

通常使用第二个表来规范化数据是个更好的主意。或者切换到NOSQL数据库解决方案。

答案 3 :(得分:1)

您当然可以以序列化格式存储序列化数据,如PHP的序列化格式或JSON。我唯一的问题是你是否需要访问这个序列化数组中的任何数据(即查询这些数据)。如果你总是要查询某种类型的id,这应该可以正常工作。但是,如果您需要在数据库中实际使用该数据,则可能需要考虑使用NoSQL解决方案来处理非结构化数据。