以前の記事:【覚え書き】AWS Elastic BeanstalkからRDSへ接続に書いたように、
Elastic Beanstalk(EB)のMySQLへ接続できるようになったので、
MySQLを使ってアカウント管理してみたいと思う。
サイト上で、アカウントを登録してログインするところまでやってみたい。
今回は、Node.js+Express+Passport+MySQLの環境で構築する。
ExpressやPassportについての詳細は説明しない。
まずは、AWS-SDKを使用してアプリケーションを作成する。
(詳しくはこの辺を参照)
アカウントは、以下のようにJavaScriptで定義されているとする。
account.js
exports.Account = function(id, username, password, profile_id, created){
this.id = id;
this.username = username;
this.password = password;
this.profile_id = profile_id;
this.created = created;
};
exports.Profile = function(profile_id, email, sex, description){
this.profile_id = profile_id;
this.email = email;
this.sex = sex;
this.description = description;
};
まず準備として、前回の記事を参考にMySQLに接続したら、
以下のSQL文を実行して(コメントは不要)、データベースを用意しておく。
initTables.sql
/* Use Database */
USE ebdb; // Elastic Beanstalkがあらかじめ用意してくれたテーブルを使う。
/* Create Tables */
CREATE TABLE ACCOUNTS
(
ID INT(12) UNSIGNED NOT NULL UNIQUE AUTO_INCREMENT,
USERNAME VARCHAR(255) NOT NULL UNIQUE,
PASSWORD VARCHAR(200) NOT NULL,
PROFILEID INT(12) UNSIGNED UNIQUE,
CREATED DATETIME NOT NULL,
PRIMARY KEY (ID)
) COMMENT = 'User Accounts';
CREATE TABLE PROFILES
(
ID INT(12) UNSIGNED NOT NULL UNIQUE AUTO_INCREMENT,
EMAIL VARCHAR(255),
SEX enum ('male', 'female', 'other') default 'other',
DESCRIPTION TEXT,
PRIMARY KEY (ID)
) COMMENT = 'Profiles';
/* Create Indexes */
CREATE UNIQUE INDEX USER_IDX ON ACCOUNTS (USERNAME ASC);
CREATE INDEX ACCOUNT_IDX ON ACCOUNTS (ID ASC);
CREATE UNIQUE INDEX PROFILE_IDX ON PROFILES (ID ASC);