PHP を使用するデータベース駆動型アプリケーションの作成
レッスン 1b: Oracle データベース表の作成
このレッスンでは、ウィッシュリストアプリケーションの開発での最後の準備手順である、テストデータを持つサンプルのデータベースの作成を示します。このチュートリアルの手順を完了するには、ウィッシャーのデータを格納するデータベースが必要です。NetBeans IDE では、IDE のインタフェースを使用して、これらのアクティビティーをすべて実行できます。
始める前に、「PHP を使用する CRUD アプリケーションの作成 」のメインページにあるチュートリアルの要件を確認してください。
現在のドキュメントは、PHP チュートリアル「NetBeans IDE for PHP での CRUD アプリケーションの作成」の一部です。
データベースのユーザーの作成
この手順では、最初にユーザーを作成し、次にそのユーザーとして表を作成します。
ユーザーを作成するには、Oracle のツールを使用するか、NetBeans IDE からデータベースに接続して IDE の SQL エディタを使用します。NetBeans 7.0 は、現在 Beta または開発ビルドとしてのみ利用できますが、Oracle データベースへの接続が改善されています。NetBeans IDE から Oracle データベースに接続し、そのデータベース内でユーザーを作成する方法を学習するには、「Oracle データベースへの接続 」チュートリアルを参照してください。
選択したツールを使用して、次のユーザーを作成します。
phpuser
phpuserpw
CREATE TABLE
CREATE VIEW
CREATE SEQUENCE
CREATE TRIGGER
CONNECT
RESOURCE
このユーザーを作成するための SQL コマンドセットの例を次に示します。これらのコマンドでは、データベースに表領域 USERS および TEMP が存在することが前提になります。
drop user phpuser cascade; create user phpuser identified by phpuserpw; grant connect, resource to phpuser; alter user phpuser default tablespace users temporary tablespace temp account unlock;
サンプルデータベースの構造の設計
必要なデータをすべて準備して格納するには、次の 2 つの表が必要です。
登録済みユーザーの名前とパスワードを格納する wishers 表
ウィッシュの説明を格納する wishes 表
wishers 表には次の 3 つのフィールドがあります。
ID (id) - ウィッシャーの一意の ID。このフィールドは主キーとして使用されます。
名前 (name)
パスワード (password)
wishes 表には次の 4 つのフィールドがあります。
ID (id) - ウィッシュの一意の ID。このフィールドは主キーとして使用されます。
ウィッシャーの ID (wisher_id) - ウィッシュが属するウィッシャーの ID。このフィールドは外部キーとして使用されます。
description
期日 (due_date) - ウィッシュが要求される日付
表はウィッシャーの ID を介して関連付けられます。wishes の due_date 以外のフィールドは、すべて必須です。
Oracle データベーススキーマの作成
作成したユーザーとしてデータベースにログインします。
NetBeans IDE 経由で接続する場合、新しいユーザーの名前とパスワードを使用して接続を作成します。ユーザーと同じ名前を持つスキーマを選択するようにします。(「Oracle データベースへの接続」チュートリアルの「Oracle データベースへの接続の確立 」の節を参照してください。)
wishers 表を作成するには、次の SQL クエリーを実行します。
create table wishers ( id number not null, name varchar2(50) unique not null, password varchar2(50) not null, constraint wishers_pk primary key(id) );
wishes 表を作成するには、次の SQL クエリーを実行します。wishes と wisher を関連付けるために、外部キーを作成します。
create table wishes ( id number not null, wisher_id number not null, description varchar2(255) not null, due_date date, constraint wishes_pk primary key(id), constraint wishes_fk1 foreign key(wisher_id) references wishers(id) );
新しい表がデータベースに追加されたことを確認します。NetBeans IDE を使用してデータベースに接続している場合、「サービス」ウィンドウの jdbc:oracle:thin:@localhost:1521:XE [PHPUSER の phpuser] 接続ノードに移動します。新しい表が「表」ノードに一覧表示されます。(それらが表示されない場合、接続を右クリックして「再表示」を選択します。)
注: Oracle データベース表を作成するための一連の SQL コマンドは、ここ からダウンロードできます。
ID 値を増分するための順序およびトリガーの追加
Oracle データベースでは、値を増分するために順序を指定する必要があります。表に新しいメンバーが追加されたときに値を増分するには、トリガーを追加します。
wishers 表の順序を追加するには、次の SQL コマンドを実行します。
create sequence wishers_id_seq start with 1 increment by 1;
新しいウィッシャーを追加したときに wishers 表の ID 列で順序をトリガーするには、次の SQL コマンドを実行します。
create or replace trigger wishers_insert before insert on wishers for each row begin select wishers_id_seq.nextval into :new.id from dual; end; /
wishes 表の順序を追加します。
create sequence wishes_id_seq start with 1 increment by 1;
新しいウィッシュを追加したときに wishes 表の ID 列で順序を実行するためのトリガーを追加します。
create or replace trigger wishes_insert before insert on wishes for each row begin select wishes_id_seq.nextval into :new.id from dual; end; /
注: 順序およびトリガーを含む、Oracle データベース表を作成するための一連の SQL コマンドは、ここ からダウンロードできます。
テストデータの入力
アプリケーションをテストするには、データベース内にいくつかのデータが必要です。以降の例では、ウィッシャーを 2 つとウィッシュを 4 つ追加する方法を示します。
Tom という名前でパスワードが「tomcat」のウィッシャーを追加します。
insert into wishers (name, password) values ('Tom','tomcat');
Jerry という名前でパスワードが「jerrymouse」のウィッシャーを追加します。
insert into wishers (name, password) values ('Jerry', 'jerrymouse'); commit;
ウィッシュを追加します。
insert into wishes (wisher_id, description, due_date) values (1, 'Sausage', to_date('2008-04-01', 'YYYY-MM-DD')); insert into wishes (wisher_id, description) values (1, 'Icecream'); insert into wishes (wisher_id, description, due_date) values (2, 'Cheese', to_date('2008-05-01', 'YYYY-MM-DD')); insert into wishes (wisher_id, description) values (2, 'Candle'); commit;
テストデータを追加したことを確認します。NetBeans IDE を使用してテストデータを表示する場合、関連する表でマウスの右ボタンをクリックし、コンテキストメニューから「データを表示」を選択します。
データベースの原則とデザインパターンの一般的な知識については、チュートリアル http://www.tekstenuitleg.net/en/articles/database_design_tutorial/1 を確認してください。
Oracle の CREATE TABLE 文の構文についての詳細は、http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_7002.htm を参照してください。
注: Oracle データベース表を作成するための一連の SQL コマンドは、ここ からダウンロードできます。
次の手順
次のレッスン >>
チュートリアルのメインページに戻る
users
@
php.netbeans.org
メーリングリストに登録する ことによって、NetBeans IDE PHP 開発機能に関するご意見やご提案を送信したり、サポートを受けたり、最新の開発情報を入手したりできます。
PHP の学習に戻る