Skip to content
なかにしゆう edited this page Mar 29, 2014 · 7 revisions

データ構造

Table Description
access_tokens アクセストークンを保持するテーブル
profiles ユーザ情報を保持するテーブル。アクセストークンの有無は関係ない。
relations ユーザ同士の関係を登録するテーブル
relations_view ユーザの関係をyounger, olderを意識せず取り出せるようにしたrelationsテーブルのview
templates 紹介文のテンプレートマスタテーブル

access_tokens

アクセストークンを保持するテーブルです。アプリのOAuthを実施したユーザのアクセストークンが保存されます。

Column Description
id PK
access_token アクセストークン
created_at 作成日時
updated_at 更新日時

profiles

Column Description
id PK
access_token_id アクセストークンを持っている場合、対応するレコードのID
fb_id Facebook ID
name 名前
birthday 誕生日。ここから年齢を算出する
gender 性別。 'male' / 'female'
relationship_status 交際ステータス。 'Single' / 'In a Relationship' / 'In an Open Relationship' / 'Engaged' / 'Married' / 'It's Complicated' / 'Widowed'
picture_url 画像URL
created_at 作成日時
updated_at 更新日時

relations

友人関係を登録するテーブル。IDを数値で比較して、IDの若い方をfb_id_youngerに格納する。

Column Description
id PK
fb_id_younger Facebook ID(若い方)
fb_id_older Facebook ID(若くない方)
created_at 作成日時
updated_at 更新日時

relations_view

上記relationsテーブルをどちらからでも参照できるようにしたView。登録するときは若い方から並べてrelationsに登録、誰かの友だちを一覧にしたかったらrelations_viewから検索というイメージになります。

Column Description
id PK
fb_id_from Facebook ID
fb_id_to Facebook ID
created_at 作成日時
updated_at 更新日時

定義は以下。

CREATE VIEW relations_view AS
  SELECT
    fb_id_younger AS fb_id_from,
    fb_id_older   AS fb_id_to
  FROM relations
UNION ALL
  SELECT
    fb_id_older   AS fb_id_from,
    fb_id_younger AS fb_id_to
  FROM relations;

templates

紹介を依頼する文のテンプレートを保管します。

Column Description
id PK
objective 紹介文の目的
body 本文
created_at 作成日時
updated_at 更新日時