Skip to content

Instantly share code, notes, and snippets.

@tsubakimoto
Last active December 16, 2015 23:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tsubakimoto/5517470 to your computer and use it in GitHub Desktop.
Save tsubakimoto/5517470 to your computer and use it in GitHub Desktop.
ソーシャルアカウントでログインする際のテーブル構成

Twitter

  • tw_user_id varchar(30) unique
  • tw_screen_name varchar(15)
  • tw_access_token varchar(255)
  • tw_access_token_secret varchar(255)

Facebook

  • fb_user_id varchar(30) unique
  • fb_name varchar(255)
  • fb_picture varchar(255)
  • fb_access_token varchar(255)

Google

  • gl_user_id varchar(30) unique
  • gl_name varchar(255)
  • gl_picture varchar(255)
  • gl_access_token varchar(255)

だからSQLはこうなる?

create table users (
id int not null auto_increment primary key
, email varchar(255) not null default ''
, password varchar(255) not null default ''
, tw_user_id varchar(30) not null default ''
, tw_screen_name varchar(15) not null default ''
, tw_access_token varchar(255) not null default ''
, tw_access_token_secret varchar(255) not null default ''
, fb_user_id varchar(30) not null default ''
, fb_name varchar(255) not null default ''
, fb_picture varchar(255) not null default ''
, fb_access_token varchar(255) not null default ''
, gl_user_id varchar(30) not null default ''
, gl_name varchar(255) not null default ''
, gl_picture varchar(255) not null default ''
, gl_access_token varchar(255) not null default ''
, created datetime not null
, modified datetime not null
, unique(tw_user_id, fb_user_id, gl_user_id)
);

テーブル定義はこんな感じ?

mysql> desc users;
+------------------------+--------------+------+-----+---------+----------------+
| Field                  | Type         | Null | Key | Default | Extra          |
+------------------------+--------------+------+-----+---------+----------------+
| id                     | int(11)      | NO   | PRI | NULL    | auto_increment |
| email                  | varchar(255) | NO   |     |         |                |
| password               | varchar(255) | NO   |     |         |                |
| tw_user_id             | varchar(30)  | NO   | MUL |         |                |
| tw_screen_name         | varchar(15)  | NO   |     |         |                |
| tw_access_token        | varchar(255) | NO   |     |         |                |
| tw_access_token_secret | varchar(255) | NO   |     |         |                |
| fb_user_id             | varchar(30)  | NO   |     |         |                |
| fb_name                | varchar(255) | NO   |     |         |                |
| fb_picture             | varchar(255) | NO   |     |         |                |
| fb_access_token        | varchar(255) | NO   |     |         |                |
| gl_user_id             | varchar(30)  | NO   |     |         |                |
| gl_name                | varchar(255) | NO   |     |         |                |
| gl_picture             | varchar(255) | NO   |     |         |                |
| gl_access_token        | varchar(255) | NO   |     |         |                |
| created                | datetime     | NO   |     | NULL    |                |
| modified               | datetime     | NO   |     | NULL    |                |
+------------------------+--------------+------+-----+---------+----------------+
17 rows in set (0.00 sec)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment