Я использую FQL, чтобы запросить таблицу Facebook Insights и вернуть данные на мой сервер, где я планирую сохранить их в базе данных 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_NAME
- metric_subname
- значение
и затем использовать такой процесс:
- Получить результат FQL.
- Если это пустой массив, ничего не делать (потому что нет данных) .
- Если это одно значение, введите metric_name и value. Задайте для metric_subname значение «Singlular» (чтобы я знал, что это просто метрика с одним значением) .
- Если это объект stdCLass, используйте цикл foreach для заполнения столбца metric_subname.
Это должно дать мне такую таблицу, которая позволит мне легко запрашивать данные в будущем: http://i.stack.imgur.com/0fekJ.png
Может кто-нибудь оставить отзыв? Это хороший способ или есть лучшие варианты?
Заранее спасибо! :)