外部キー制約を活用する今から始める MySQL入門(8)(1/3 ページ)

» 2007年07月17日 00時00分 公開
[鶴長鎮一@IT]

 連載第7回の「DTO・DAOパターンのメリットを体験しよう」ではDTO・DAOパターンを使って「簡易在庫管理システム」を作成しました。

 今回は、テーブル間の値に一定の条件を設ける「外部キー制約」を活用し、第5回で作成した「簡易オンラインストア」をDTO・DAOパターンで再構築し、簡易在庫管理システムと統合するまでの準備を整えます。

関連リンク:

連載 快速MySQLでデータベースアプリ!

http://www.atmarkit.co.jp/flinux/index/indexfiles/mysqlindex.html

連載 今から始める MySQL入門

http://www.atmarkit.co.jp/flinux/index/indexfiles/mysql5index.html


サンプルファイルのインストール

「sample5」のインストール手順と確認作業

 下記からサンプルアーカイブ「sample5.tgz」をダウンロードし、Apache HTTPDのドキュメントルートなどの、PHPが動作するディレクトリに展開します。展開後、作業ディレクトリを移動し、サンプルに含まれる「sample_db5.sql」を利用し、データベース「sample_db5」を準備します。

 その後、PHPスクリプトからデータベース「sample_db5」を利用できるよう権限の設定を行います。

サンプルダウンロード:

sample5のtarアーカイブ


 なおサンプルではフォーム入力値のチェックやMySQLサーバの設定に、セキュリティに対する考慮が不足しています。また、主に管理者が利用する「在庫管理」機能と、不特定のユーザーが利用する「オンラインストア」機能が同居しているうえ、ユーザーパスワードやクライアント認証による使用規制も行われていません。

 不特定のユーザーから利用されることがないよう、公開されたサーバ上での使用は控えるようにします。

# cd /var/www/html
# tar xvfz /..pathto../sample5.tgz
# cd sample5
「sample5」をドキュメントルートに展開し作業ディレクトリを移動。
Apacheをソースからデフォルトのままインストールした場合は、ドキュメントルートを/usr/local/apache2/htdocs/などに適宜変更します


# mysqladmin -u root -p create sample_db5
データベース「sample_db5」を作成し
# mysql -u root -p sample_db5 < sample_db5.sql
「sample_db5.sql」ファイルで各テーブルと初期データを準備

# mysql -u root -p
mysql> GRANT ALL on sample_db5.* to 'php'@'localhost' identified by 'password';
Query OK, 0 rows affected (0.02 sec)
権限設定(ユーザー名:php パスワード:password)
Apache HTTPDサーバとMySQLサーバが同一ホストではない場合、「localhost」をApache HTTPDサーバのアドレスに適宜変更


 インストール後、ブラウザで動作を確認します。

 このサンプルでは、第7回で作成した「簡易在庫管理システム」も同時にインストールされています。簡易在庫管理システムで商品アイテムを追加し、それが「簡易オンラインストア」のメニューに追加されていることを確認します(画面12)。

画面1 「簡易在庫管理システム」で商品アイテムを追加 画面1 「簡易在庫管理システム」で商品アイテムを追加
画面2 「簡易オンラインストア」のメニューで追加を確認 画面2 「簡易オンラインストア」のメニューで追加を確認
       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

AI for エンジニアリング
「サプライチェーン攻撃」対策
1P情シスのための脆弱性管理/対策の現実解
OSSのサプライチェーン管理、取るべきアクションとは
Microsoft & Windows最前線2024
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。