我正在使用FQL查询Facebook Insights table并将数据返回到我的服务器,我计划将其存储在MySQL数据库中。
我发现所有Insights指标都会返回值字段的不同数据类型。例如, application_installation_adds 之类的内容将返回如下值:
Array
(
[0] => stdClass Object
(
[metric] => application_installation_adds
[value] => 3
)
)
..如果 application_permission_views_top 这样的指标在有数据时会返回此值:
Array
(
[0] => stdClass Object
(
[metric] => application_permission_views_top
[value] => stdClass Object
(
[permissions_impression_email] => 5
[permissions_impression_user_birthday] => 4
[permissions_impression_read_insights] => 4
)
)
)
..如果它是空的,那就是这个:
Array
(
[0] => stdClass Object
(
[metric] => application_permission_views_top
[value] => Array
(
)
)
)
鉴于不同的数据类型和值,我想知道在我的数据库中存储这些数据的最佳方法是什么。
我正在考虑建立一个这样的表:
然后使用这样的过程:
这应该给我一个这样的表格,这样我就可以轻松地在轨道上查询数据:http://i.stack.imgur.com/0fekJ.png
有人可以提供反馈吗?这是一个很好的方法,还是有更好的选择?
提前致谢! :)
答案 0 :(得分:0)
您知道指标层次结构可以达到多少级别?如果超过两个,则您的解决方案无法扩展。
假设在某些时候深度将达到> 2并设计一个通用模式。我想到的是保留两个表:metrics和user_metrics。度量表只包含可能度量的层次结构,只有一个更改:而不是名称和子名称,实现id,name,parent_id。第二个表将度量与用户相关联,并存储该值,因此:metric_id,user_id,value。