在MYSQL表中存储Facebook用户喜欢的数组

时间:2013-04-15 13:20:13

标签: php mysql sql facebook

我有一个分析Facebook用户喜欢的应用程序,并根据该数据向他/她显示视频。现在问题是我需要将用户存储在MYSQL表中。 数据看起来大概就像这样

array(2) { ["data"]=> array(46) { [0]=> array(4) { ["category"]=> string(21) "Media/news/publishing" ["name"]=> string(20) "Cosmopolitan Armenia" ["id"]=> string(15) "146307748762264" ["created_time"]=> string(24) "2013-03-20T14:40:43+0000" } [1]=> array(4) { ["category"]=> string(17) "Telecommunication" ["name"]=> string(5) "Zangi" ["id"]=> string(15) "386291674718829" ["created_time"]=> string(24) "2013-03-20T11:07:46+0000" } [2]=> array(4) { ["category"]=> string(13) "Musician/band" ["name"]=> string(11) "Ray Charles" ["id"]=> string(12) "430894850091" ["created_time"]=> string(24) "2013-03-16T22:03:46+0000" } [3]=> array(4) { ["category"]=> string(4) "Cars" ["name"]=> string(13) "Mazda Armenia" ["id"]=> string(15) "447042531989769" ["created_time"]=> string(24) "2013-03-16T22:01:46+0000" } [4]=> array(4) { ["category"]=> string(13) "Musician/band" ["name"]=> string(16) "Lockport Artists" ["id"]=> string(15) "615416628475063" ["created_time"]=> string(24) "2013-03-16T21:07:22+0000" }

您可以建议哪种结构来保存此类数据。我可以在一个专栏中保留一个长文本,但这将非常不专业,响应时间将非常长。

3 个答案:

答案 0 :(得分:1)

让我们说你的数组被称为$ likes。你可以做点什么

$likes_to_store = json_encode($likes);

然后,您希望将$likes_to_store存储在数据库中。

稍后,在检索要使用的信息时,您可以

$likes_to_analyze = json_decode($likes_from_db);

这是一种将数组存储在数据库中供以后使用的简洁方法,因为该数组被序列化为一个字符串,占用了少量空间。

答案 1 :(得分:1)

我的建议是,您可以创建一个合适的表并将每个值存储在一列中。为什么? 一列中的值已序列化,它们只是填充空间,如果您愿意,则无​​法创建正确的查询,将来您可能希望创建统计信息或使用此数据来研究用户的行为或类似的事情。

这是一个简单的查询,只计算您拥有的“媒体/新闻/发布”类别的数量,您将有权使用like函数在序列化数据中找到所需内容。

查询数据库,将结果作为数组检索,然后使用json_encode进行序列化

更简单了

答案 2 :(得分:0)

facebook图表以JSON回复。

您可以将JSON存储为MySQL中的序列化数组。

但是我建议在你的应用程序中创建一个“Like”类,并从Facebook JSON响应中实例化并保持“Likes”。