Top > MyPage
 

仕様書

今回作成する仕様書

概要

今回はユーザ情報をデータベースに登録するアプリケーションを作成する予定です。

データベースの構造

データベースのテーブル構造は以下のよう(HSQLDB)。

create table USERS (
   ID integer generated by default as identity (start with 1),
   EMAIL varchar(64) not null,
   USER_NAME varchar(64) not null,
   NOTE varchar(64),
   PASS varchar(64) not null,
   ADDRESS varchar(64),
   MEMBER_NAME varchar(64),
   TELEPHONE varchar(64),
   primary key (ID),
   unique (USER_NAME)
);
create table ROLES (
   ID integer generated by default as identity (start with 1),
   ROLE_NAME varchar(255) not null,
   primary key (ID)
);
create table USER_ROLE (
   ID integer generated by default as identity (start with 1),
   ROLE_NAME varchar(64) not null,
   USER_NAME varchar(64) not null,
   primary key (ID),
   unique (USER_NAME)
);

これは将来ログインシステムを自前で構築する際のテーブル群になるわけで、簡単に説明すると、

  • 基本はUSERSテーブルでUSER_ROLEはそのユーザーのroleとの対応関係を表している。従って、USERSとUSER_ROLEとは1:1の関係になっている。
  • ROLESテーブルは、単にロールの種類が入っている。

データベースへの登録

rolesテーブルへの登録

まずは、単に役割を表すROLESテーブルへ登録する。たとえば、ADMIN、MANAGER,USERなどを登録する。このときのIDは自動で登録できるようにする。

USERSテーブルとUSER_ROLEテーブルへの登録

ちなみにUSERSテーブルにユーザーのデータを登録したら、USER_ROLEテーブルへは自動で登録される。

ROLESテーブルへの登録

USERSテーブルにユーザーのデータを登録する際、そのroleを設定する際に、htmlのselect分の中にはROLEテーブルの内容が表示される。

いずれ

いずれこれらのテーブルを使って、filter機能かAOPのいずれかを使って認証(Authentication)を行うようにしようと考えている。