php - MySQL 数据库结构 - 存储 Facebook FQL 结果

标签 php mysql facebook structure facebook-fql

我正在使用 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
                (
                )

        )

)

考虑到不同的数据类型和值,我想知道在我的数据库中存储这些数据的最佳方式是什么。

我正在考虑像这样设置一个表:

  • 指标名称
  • metric_subname
  • 值(value)

然后使用这样的过程:

  1. 获取 FQL 结果。
  2. 如果是空数组,什么都不做(因为没有数据)
  3. 如果是单个值,请插入 metric_name 和值。为 metric_subname 指定一个值“Singlular”(这样我就知道它只是一个单值指标)
  4. 如果是 stdCLass 对象,使用 foreach 循环填充 metric_subname 列。

这应该给我一个像这样的表,这将允许我以一种简单的方式沿着轨道查询数据:http://i.stack.imgur.com/0fekJ.png

有人可以提供反馈吗?这是解决问题的好方法,还是有更好的选择?

提前致谢! :)

最佳答案

您知道指标层次结构可以达到多少层级吗?如果超过两个,您的解决方案将无法扩展。

假设在某个点深度将达到 > 2 并设计一个通用模式。我想到的一个是保留两个表:metrics 和 user_metrics。指标表将只包含可能指标的层次结构,有一个变化:代替名称和子名称,实现 id、名称、parent_id。第二个表会将指标与用户相关联,并存储值,因此:metric_id、user_id、value。

关于php - MySQL 数据库结构 - 存储 Facebook FQL 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5691490/

相关文章:

php - 如何公平地返回数据库结果-MySQL、PHP

java - Android 版 Facebook 火箭

Facebook 广告 page_welcome_message 对于以 Messenger 作为目标的广告无效

php - PHP 数组合并和删除重复问题

php - 未找到 ZipArchive,但似乎已安装 (PHP 7.2)

mysql - 编写具有多个连接的 MySQL 语句

java - 如何使用 spring-social 从 Facebook 获取个人资料图片 url?

php - 如何纠正 mysql php 更新中的错误?

php - Laravel 5.5 多重身份验证路由问题

mysql - 如何在mysql中智能搜索字符串?