このマクロに関しては 53 ページで説明します。)
6. 続けて、[有効値]ボックスに「代理」、[定義]ボックスに「代理店による販売」と入力しま す。
マクロが多数用意されており、ERwinのさまざまなスクリプト テンプレートに活用されて います。これらのマクロは公開されていますので、ユーザー独自のスクリプトを作成するこ ともできます。たとえば、DDLの先頭にスキーマ作成日をコメント行として挿入し、CREATE
TABLE文の頭にテーブル名、定義、カラム一覧などをコメント行として挿入します。この
ようなテンプレートを作成しておけば、スキーマ定義文の品質は向上します。マクロの使用 方法の詳細については、Lesson 15で説明します。
次に、「
chumon_status」カラムのルールを実現するバリデーション ルールを作成します。
1.
[モデル]メニューの[バリデーション ルール]をクリックして[バリデーション ルール]ダ イアログ ボックスを開きます。
2.
[新規作成]をクリックし、[新規バリデーション ルール]ダイアログ ボックスを開きます。
3.
[論理]ボックスおよび[物理]ボックスに「val_chumon_status」と入力し、[OK]をクリッ クします。
4.
[全般]タブの[有効値リスト]オプション ボタンをオンにします。
5.
[有効値]ボックスに「直販」、[定義]ボックスに「弊社からの直接販売」と入力します。
6.
続けて、[有効値]ボックスに「代理」、[定義]ボックスに「代理店による販売」と入力しま す。
7.
[ORACLE]タブをクリックして、[ORACLE チェック条件]ボックスに「%AttFieldName IN
(
‘直販
’,’代理
’)」とバリデーション ルールが表示されていることを確認します。[
OK]をクリ ックして[バリデーション ルール]ダイアログ ボックスを閉じます。
8.
[
CHUMON]テーブルの[カラム]ダイアログ ボックスを開きます。
9.
[カラム]ボックスの一覧の[chumon_status]カラムをクリックし、[ORACLE]タブをクリ ックします。
10.
[バリデーション]ボックスの一覧から、先ほど作成したバリデーションルール
[
val_chumon_status]をクリックします。
11.
[バリデーション]ボックスの下に、「%AttFieldName IN('直販', '代理')」とバリデーション ルールが表示されていることを確認します。[
OK]をクリックして[カラム]ダイアログ ボッ クスを閉じます。
[カラム]ダイアログ ボックスから[バリデーション ルール]ダイアログ ボックスを開 く:
[カラム]ダイアログ ボックスの[バリデーション]ボックスの右側に[…]ボタンがあ ります。このボタンをクリックすると、[カラム]ダイアログ ボックスから[バリデーシ ョン ルール]ダイアログ ボックスを開くことができます。同様に、[デフォルト]ボック スの右側にある[…]ボタンをクリックすると、[デフォルト値/初期値]ダイアログ ボッ クスを開くことができます。
☆
MEMO☆
物理設計(デフォルト値の設定)
ここでは、データベースに設定するデフォルト値の作成方法とカラムへの設定方法について学習し ます。
説明
デフォルトとは、データ挿入時に明示的にデータが指定されなかった場合に、カラムに挿入するデータ を指定する機能をいいます。デフォルトを作成しておくと、入力するデータが決まっているようなカラ ムを新規作成するときに、自動的に指定したデータを挿入できます。
デフォルト値/初期値の作成
以下のカラムに入力されるデータを検討してみると、挿入すべきデフォルト値が存在することがわかり ました。
カラム名(属性名) ビジネスルール デフォルト値 chumon_status
(注文ステータス)
直接販売を基本とする。 直販
注文データを入力する場合、「chumon_status」カラムにデフォルトで「直販」を挿入します。
「chumon_status」カラムのデフォルト値を実現するデフォルト/初期値を作成します。
1. [モデル]メニューの[デフォルト値]をクリックして[デフォルト/初期値]ダイアログ ボッ クスを開きます。
2. [新規]をクリックして[新規デフォルト値]ダイアログ ボックスを開きます。
3. [論理]ボックスおよび[物理]ボックスに「def_注文ステータス」と入力し、[OK]をクリッ クします。
4. [ORACLE]タブをクリックし、[サーバー値 – ORACLEデフォルト]ボックスに「'直販'」
と入力します。
5. [OK]をクリックして、[デフォルト値/初期値]ダイアログ ボックスを閉じます。
6. [CHUMON]テーブルの[カラム]ダイアログ ボックスを開きます。
7. [カラム]ボックスの一覧の[chumon_status]カラムをクリックし、[ORACLE]タブをクリ ックします。
8. [デフォルト]ボックスの一覧から、先ほど作成したデフォルト[def_注文ステータス]をクリ ックします。
12
9. [デフォルト]ボックスの下に、「'直販'」とデフォルト/初期値が表示されていることを確認し ます。[OK]をクリックして[カラム]ダイアログ ボックスを閉じます。
デフォルト/初期値:
ERwinは、[デフォルト/初期値]ダイアログ ボックスの[サーバー値]ボックスに入力し
た値をそのままデフォルト値に使用してDDLを生成します。デフォルト値に数値型データ を使用するときは問題ありませんが、文字型データを使用する場合はデフォルト値を「'」
(シングル クォーテーション)で囲んでください。データベースによっては、引用符で囲 まれていない文字型データを挿入できないことがあります。
ドメインの階層構造
13
ここでは、ERwinの優れたデータベース設計機能の1つである、ドメインの階層構造について学習 します
説明
カラムに設定するすべてのプロパティが共通している場合、簡単にドメインを検討できます。しかし実 際には、あるプロパティは共通しているが、共通していないプロパティも存在するというケースが多く 発生します。このような場合、ドメインを階層化する方法があります。
このチュートリアルでは、ドメインについて理解しやすいように「ドメインの作成」
(Lesson5)と「ドメインの階層構造」に分けて説明していますが、通常はドメインを検討
する時に階層構造を決定することが一般的です。
ドメインに階層構造を持たせる
たとえば、部内で使用するコードはすべて数値型で登録するというルールがあるとします。コードを登 録するカラムには、「製品コード」、「従業員コード」、「所属支店コード」、および「所属部門コー ド」があります。以下の表を参照し、それぞれのカラム プロパティを確認してください。
カラム名 データ型 長さ NULL バリデーション ルール デフォルト値
製品コード NUMBER 10 NOT NULL - - 従業員コード NUMBER 5 NOT NULL - - 所属部署コード NUMBER 3 NOT NULL 101, 102, 103 - 所属支店コード NUMBER 3 NOT NULL 501, 502 501