| 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に作成されていないかのいずれかと予測されるため、再度設定を見直していただきたい。 |
|