この特集のトップページへ
Chapter 3:データストア層の構築

head2.gif 3.4.4 制約の設定
 リレーションと並んでもう1つ設定しておきたいのが,制約である。制約とは,あるフィールドに格納することができるデータの範囲を設定する機能である。たとえば,ここで作成しているデータベースであれば,その時点の在庫数を保持する製品情報テーブルのSTOCKフィールドの値は,負の数であってはならない。なぜならば,在庫は必ず正または0である必要があり,負ということは「在庫が不足している」という状態を示し,あってはならないからである。

 そこで,製品情報テーブルのSTOCKフィールドに,負の数を格納できないような制約を設定してみることにする。制約は,以下の手順で設定する。

1) テーブルのプロパティを開く

 まず,設定したいテーブルのプロパティページを開く。プロパティページを開くにはさまざまな方法があるが,ここでは,テーブルウィンドウから開く方法を説明する。

 データベースウィンドウの左側にある[テーブル]を選択すると,右側に作成したテーブルが表示される。ここで,プロパティページを表示したいテーブルを選択して右クリックし,表示されたメニューから[デザインビュー]を選ぶ(Fig.3-57)。

Fig.3-57 デザインビューを開く

fig3_57.gif

 すると,Fig.3-58のように,テーブル作成時と同じウィンドウが表示されるので,ここから適当な列を選択して右クリックし,表示されるメニューから[プロパティ]を選択する。

Fig.3-58 プロパティの表示

fig3_58.gif

2) 制約の設定

 プロパティページには,[テーブル][リレーション][インデックス/キー]という3つのページがある。制約を設定したい場合には,[テーブル]ページにある[テーブルと列に対するCHECK制約]内の[新規作成]ボタンを押す(Fig.3-59)。

Fig.3-59 テーブルのプロパティ

fig3_59.gif

 すると,[制約式]のところに式を入力できるようになる。STOCKフィールドに負の値を格納できないようにするため,[制約式]の部分に“STOCK>=0”と入力する(Fig.3-60)。

Fig.3-60 制約の設定

fig3_60.gif

 [作成時に既存データを確認する][INSERTとUPDATEに対する制約を有効にする][レプリケーションに対する制約を有効にする]の意味は,リレーションの設定と同じである。通常は,すべてチェックを付けておく。

 同様な方法で,ほかの制約も設定することができる。たとえば,金額を格納するUNITPRICEフィールドやPRICEフィールドは負の値をとらない,といった制約を設定することができる。試してみていただきたい。

prevpg.gif Chapter 3 21/22 nextpg.gif