4. データを格納

解析した情報をデータベースへ格納するテーブル定義を考える

  1. クローラ管理の「crawl_control」
  2. アプリ情報「mixi_app_info」(更新頻度低)
  3. ランキング履歴「mixi_app_rank_log」(更新頻度高)と分ける

利用者数とかは、2個所のテーブルで保持してます(ランキング履歴に残すだけでも良いかもしれない)

CREATE TABLE crawl_control(
 crawl_control_id int not null auto_increment,
 batch_code char(255),
 status char(1),
 created_at datetime,
 updated_at datetime,
 primary key(crawl_control_id)
);

CREATE TABLE mixi_app_info(
 mixi_app_info_id int not null auto_increment,
 app_id int not null,
 app_name varchar(255),
 category_id int,
 category_name varchar(255),
 app_img char(255),
 app_logo char(255),
 user int,
 mymixi int,
 rate float,
 provider_id int,
 provider_name varchar(255),
 intro text,
 register_date datetime,
 created_at datetime,
 updated_at datetime,
 primary key(mixi_app_info_id)
);

CREATE TABLE mixi_app_rank_log(
 mixi_app_rank_log_id int not null auto_increment,
 crawl_control_id int not null,
 app_id int not null,
 user int,
 week_user_rank int,
 all_user_rank int,
 created_at datetime,
 updated_at datetime,
 primary key(mixi_app_rank_log_id)
);


こんな感じのテーブルにしばらくデータを格納し続けて間隔とかは様子見
なんか解ってきたら日記に書くかもしれません