掲載誌情報
掲載誌 日経Linux 2003/02〜
タイトル リッチインターネットアプリケーションを開発しよう! 第2回
サブタイトル ColdFusion MXとFlash MXで作るリッチインターネットアプリケーションをMVCモデルで学ぶ
第1回 第2回 第3回 第4回 第5回

4. データベースの設計とColdFusion MXからの接続
   本項では、前項にて行なった各機能の仕様設計に基づいて、勤怠管理システムで利用するデータベース「MySQL」にてデータベースを作成し、テーブルを構築するまでを説明する。さらに、構築されたデータベースに対してのColdFusionMXから接続手順も説明する。
     
  (1) テーブルを設計する
    勤怠管理システムで必要なテーブルは、出退社時刻を管理するタイムカードテーブル(TimecardTable)と本システムの利用ユーザを管理するユーザテーブル(UserTable)の2つのみとなる。以下に各テーブルの項目とデータ長を定義する。
     
   
テーブル名 TimecardTable 説明 出退社時刻の管理テーブル
フィールド名 データ型 制約 NULL 重複 初期値 フィールド名
UserID Varchar(20) PK ×     対象ユーザのID
TargetDay Date ×     対象日
ComingTime Time         出社時刻
QuttingTime Time         退社時刻
     
   
テーブル名 UserTable 説明 利用ユーザ管理テーブル
フィールド名 データ型 制約 NULL 重複 初期値 フィールド名
UserID Varchar(20) PK ×     対象ユーザのID
Password Varchar(20)   ×     パスワード
Name Varchar(100)   ×     氏名
Email Varchar(100)   ×     メールアドレス
  (2) テーブルを作成する
    上記で定義したテーブルを基に、データベースをMySQLに作成する。
今回は既にサーバに、MySQLがインストール済みであることを前提とさせていただく。MySQLがインストールされていない読者の方は、別途MySQLの解説書などを参考にインストールをしていただきたい。
A) 先ずはMySQL管理者権限でログインする。
※rootの部分は読者のMySQLの管理者ユーザ名に変更する。
$mysql -u root -p
パスワードを入力して
mysql>
上記プロンプトが表示されれば、接続は完了となる。
B) 次にデータベース「Timecard」を作成する。
mysql>CREATE DATABASE Timecard;
上記コマンドを入力して
Query OK
が表示されれば、勤怠管理システム用のデータベースは作成されたこととなる。
但し、あくまでデータベースの箱が出来たに過ぎず、このデータベースに接続するためのユーザと勤怠管理システムのタイムカードデータを格納するテーブル「TimecardTable」、利用ユーザを管理するテーブル「UserTable」を作成する必要がある。
C) 作成したデータベースに接続を変更する。
mysql>r Timecard;
「」マークの箇所は、バックスラッシュ「\」の半角です。
Current database: Timecard
上記が表示されれば、データベース「Timecard」への接続は完了となる。
D) 次にColdFusion MXから接続するためのユーザを作成する。
mysql>GRANT ALL ON *.* TO NBP IDENTIFIED BY 'linux';
上記は、全てのホストからアクセス可能な「NBP」ユーザを作成し、「linux」というパスワードを与え、権限は「ALL」(GRANT権限以外の全ての権限を与えている)を付与することで、全てのデータベース・全てのテーブルにアクセス可能なユーザとしている。実際のサイト構築の場合には読者のセキュリティポリシーに従って、権限や利用できるデータベースなどの設定を適宜行っていただきたい。
mysql>FLUSH PRIVILEGES;
上記を実行して権限情報を再読み込みし、設定を有効にする。
E) データベース「Timecard」へタイムカードテーブル「TimecardTable」を作成する。
mysql>CREATE TABLE TimecardTable(
PRIMARY KEY(UserID, TargetDay),
UserID varchar(20) NOT NULL,
TargetDay date NOT NULL,
ComingTime time,
QuittingTime time
);
上記を実行する。
query OK
上記が表示されれば、正常にテーブルが作成されたこととなる。
mysql>show fields from TimecardTable;
上記をタイプして実行し、作成されたテーブルの各フィールドの確認を行う。
F) 次にユーザ管理テーブル「UserTable」を作成する
mysql>CREATE TABLE UserTable(
UserID varchar(20) NOT NULL PRIMARY KEY,
Password varchar(20) NOT NULL,
Name varchar(100) NOT NULL,
Email varchar(100) NOT NULL
);
上記を実行する。
query OK
上記が表示されれば、正常にテーブルが作成されたこととなる。
mysql>show fields from UserTable;
上記をタイプして実行し、作成されたテーブルの各フィールドの確認を行う。
  (3) データを送受信するために、ColdFusion MXでのDSN設定を行う
     勤怠管理システムは、Flashで作成されたUIで受け付けられた情報を、ActionScriptで制御し、Flash Remoting MXを通して、バックオフィスにあるColdFusion MXで作成されたColdFusion Componentsへ受け渡され、さらにそこからデータベースに接続して、データの入出力を行うわけであるが、ColdFusion MXとデータベースとのデータの送受信を可能にするには、先ずは「DSN」(注)を通して、接続するデータベースを定義しておく必要がある。以下にColdFusion MXでのデータベース接続の設定の説明を行う。
注: DSN(Data Source Nameの略)データベースなどのデータソースに接続するときの名前

A) ColdFusion MXの管理画面へログインする。
http://<ホスト名orIPアドレス>/CFIDE/administrator/index.cfm
B) 管理画面トップ左のナビゲーション「データとサービス」の「データソース」を選択する。
管理画面
C) 表示されたデータソース設定画面で、「新規のデータソース追加」の「データソース名」に任意の名前(ここでは「NikkeiLinux」とした。)を入力、「ドライバ」の設定はプルダウンメニューから「MySQL」を選択し、「追加」ボタンをクリックする。
D) MySQLの設定画面が表示される。
管理画面
ここで、先ほど構築したデータベースの情報を設定する。読者の皆さんが設定した値に適宜置き換えて設定を行っていただきたい。
本誌では、「データベース」に「Timecard」、「サーバー」に「IPアドレス」、「ユーザ名」に「NBP」、「パスワード」に「linux」を入力。「説明」に関しては入力しなくてもよいが、ここでは「日経Linux連載用勤怠管理システムDB」とした。「ポート」はMySQLへの接続のポートであるが、変更していなければデフォルトのままでよい。
全て正しい値が入力されたことを確認して「送信」ボタンをクリックする。
E) 全ての設定が正しければ、「接続済みデータソース一覧」の中に先ほど設定したデータソース名「NikkeLinux」が表示され、ステータスは「OK」となるはずである。
管理画面
「エラー」となっている場合は、接続情報に問題があるか、適正なユーザがMySQLに作成されていないかのいずれかと予測されるため、再度設定を見直していただきたい。

次号ではいよいよColdFusion MXを使ってデータベースに接続し、データベース接続するロジック部分をColdFusion Componentsで作成する。

BACK  
PAGETOP
CLOSE