我有一个分析插件,可以用JSON提交数据。这个JSON采用PHP格式,并在6个不同的表中提交到MySQL 5.6数据库中,JSON中的每个数组都与表进行协同处理,因为有些数据需要迭代而不是直接调用。
示例JSON:
{
"data": {
"general": {
"starttime": "2010-92-02 21:21:21",
"userip": "192.168.1.1",
"page accessed": "index.php"
},
"page": {
"loadtime": "1.4",
"clicks": "5",
"pageslist": {
"index.php": {
"access time": "5"
},
"example.php": {
"access time": "1"
},
"contact.php": {
"access time": "2"
}
}
},
"userdetails": {
"userid": "123",
"likespie": true,
"usersliked": {
"george": {
"thinksiscool": true,
"last poked": "5"
},
"debra": {
"thinksiscool": false,
"last poked": "1000"
}
}
}
}
}
我想要做的是将这些数据放入单独的表中,每行都有一个唯一ID,该数据共享其他行,实际上是该提交的标识符。
我遇到的问题是我想不出有效迭代和编译这些数据的方法。我无法加入表中的行,因为同一提交中可能有5个页面或多个用户具有相同的列名。
我正在寻找的是能够创建至少这个理论JSON输出的一部分:
{
"data": {
"pages": {
"avgloadtime": "5",
"avgclicks": "20",
"pagesdata": {
"index.php": {
"avg access time": "2"
},
"example.php": {
"avg access time": "2"
},
"contact.php": {
"avg access time": "2"
},
"help.php": {
"avg access time": "2"
}
}
},
"users": {
"likespiecount": "500",
"most_liked_users": [
"george",
"cindy",
"overtonstackflow"
]
}
}
}
我知道这可以在像couchDB这样的数据库中做得更好,但我认为由于用户可以找到它的可行性,我会给SQL一个很好的尝试。