この特集のトップページへ
>
Chapter 3:データストア層の構築
3.4.4 制約の設定
リレーションと並んでもう1つ設定しておきたいのが,制約である。制約とは,あるフィールドに格納することができるデータの範囲を設定する機能である。たとえば,ここで作成しているデータベースであれば,その時点の在庫数を保持する製品情報テーブルのSTOCKフィールドの値は,負の数であってはならない。なぜならば,在庫は必ず正または0である必要があり,負ということは「在庫が不足している」という状態を示し,あってはならないからである。
そこで,製品情報テーブルのSTOCKフィールドに,負の数を格納できないような制約を設定してみることにする。制約は,以下の手順で設定する。
1) テーブルのプロパティを開く
まず,設定したいテーブルのプロパティページを開く。プロパティページを開くにはさまざまな方法があるが,ここでは,テーブルウィンドウから開く方法を説明する。
データベースウィンドウの左側にある[テーブル]を選択すると,右側に作成したテーブルが表示される。ここで,プロパティページを表示したいテーブルを選択して右クリックし,表示されたメニューから[デザインビュー]を選ぶ(Fig.3-57)。
Fig.3-57 デザインビューを開く
すると,Fig.3-58のように,テーブル作成時と同じウィンドウが表示されるので,ここから適当な列を選択して右クリックし,表示されるメニューから[プロパティ]を選択する。
Fig.3-58 プロパティの表示
2) 制約の設定
プロパティページには,[テーブル][リレーション][インデックス/キー]という3つのページがある。制約を設定したい場合には,[テーブル]ページにある[テーブルと列に対するCHECK制約]内の[新規作成]ボタンを押す(Fig.3-59)。
Fig.3-59 テーブルのプロパティ
すると,[制約式]のところに式を入力できるようになる。STOCKフィールドに負の値を格納できないようにするため,[制約式]の部分に“STOCK>=0”と入力する(Fig.3-60)。
Fig.3-60 制約の設定
[作成時に既存データを確認する][INSERTとUPDATEに対する制約を有効にする][レプリケーションに対する制約を有効にする]の意味は,リレーションの設定と同じである。通常は,すべてチェックを付けておく。
同様な方法で,ほかの制約も設定することができる。たとえば,金額を格納するUNITPRICEフィールドやPRICEフィールドは負の値をとらない,といった制約を設定することができる。試してみていただきたい。
Chapter 3 21/22 |