CA SDM データベース スキーマの論理テーブルとそのテーブルの論理列(フィールド)を定義します。 これらの論理テーブルおよび論理列は、TABLE ステートメントに続くマッピング ステートメントでデータベース管理システムが使用する物理テーブルおよび物理列にマップされます。
注: 新しいテーブルを定義する場合は、そのテーブルのマッピング ステートメントを定義する必要があります。 マッピング ステートメントについてはこの章の最後で説明します。その後に、TABLE ステートメント、TABLE_INFO ステートメント、およびマッピング ステートメントを結合する例を示します。
TABLE table_name {field value_type field_attributes; [...]}
TABLE ステートメントを導入します。 必ず大文字で指定してください。 スキーマの論理テーブルごとに 1 つの TABLE ステートメントが必要です。
データベース テーブルの名前(たとえば、Call_Req)。 データベース テーブルを追加する場合は、小文字 z で始まる名前を指定できます (これで、既存の CA SDM テーブル名とも、今後付与される名前とも、競合する可能性がなくなります)。既存のテーブルを変更する場合は、いずれかの .sch ファイルでそのテーブルを探し、同じ名前を使用します。
テーブルの論理列の名前(たとえば、ID や desc)。 各列を名前で識別する必要があります。 テーブルを追加する場合や、列を既存のテーブルに追加する場合は、小文字 z で始まる名前を指定できます。ただし、フィールド名を文字「_f」で終了しないでください(これで、既存の CA SDM 列名とも、今後付与される名前とも、競合する可能性がなくなります)。
フィールドのデータ型。 有効な値は以下のとおりです。
|
値 |
説明 |
|---|---|
|
STRING nn |
長さが nn 文字の文字列。 |
|
INTEGER |
32 ビットの数字。 |
|
LOCAL_TIME |
1970 年 1 月 1 日からの秒数。 CA SDM は、このデータ型を以下のような指定の日付形式に自動的に再フォーマットします。 |
|
DURATION |
秒単位の期間。 |
|
REAL |
浮動小数点数。 |
|
UUID |
16 バイトのバイナリ値。 |
field_attributes
フィールドの説明。 有効な値は以下のとおりです。
|
値 |
説明 |
|---|---|
|
KEY |
このフィールドを、pdm_load で更新するレコードを指定するためのプライマリ キーとして指定します。 これは、デフォルトのプライマリ キー(ID)が指定されていない場合に使用されます。 フィールドがテーブルのプライマリ キーである場合は必須です。 |
|
NOT_NULL |
フィールドに値が必要であることを示します。 フィールドがテーブルのプライマリ キーである場合は必須です。 フィールドがプライマリ キーでない場合はオプションです。 |
|
REF other_table_name |
フィールドが別のテーブルを参照することを示します。 フィールドがプライマリ キーであるかどうかに関係なくオプションです。 |
|
S_KEY |
このフィールドを、pdm_load で更新するレコードを特定するためのセカンダリ キーであると見なします。オプションです。 |
|
UNIQUE |
フィールドの値が一意である必要があることを示します。 フィールドがテーブルのプライマリ キーである場合は必須です。 フィールドがプライマリ キーでない場合はオプションです。 |
マクロは、設定時にそのマクロが表す値に変換される同義語です。 データ型または属性にマクロを使用できます。 マクロを使用するには、#include ステートメントを追加して、そのマクロを定義するファイルを、(通常はスキーマ ファイルを基準とした)パス名を含めてインクルードします。 インクルード ステートメントは、マクロを使用する前に定義する必要があります。 インクルード ステートメントの例を以下に示します。
#include "../schema.mac"
以下に、$ NX_ROOT/site(UNIX)ディレクトリまたはインストール ディレクトリ/site(Windows)ディレクトリにある .mac ファイルに定義されているマクロをいくつか示します。
|
データ タイプ |
同値 |
|---|---|
|
nn |
NOT_NULL |
|
uniq |
UNIQUE NOT_NULL |
|
ADDR_LINE |
STRING 30 |
|
EMAILADDR |
STRING 120 |
|
ENT_DESC |
STRING 40 |
|
ENT_NAME |
STRING 30 |
|
OSI_NAME |
STRING 80 |
|
OSI_TYPE_STRING |
STRING 60 |
|
USERID |
STRING 85 |
|
PHONENUM |
STRING 32 |
|
SYMBOL |
STRING 12 |
|
HIER_SYM |
STRING 60 |
|
LONG_SYM |
STRING 30 |
|
COMMENT |
STRING 1000 |
|
LONG_STR |
STRING 500 |
|
LONG_DESC |
STRING 240 |
|
BOOL |
INTEGER |
データベース スキーマのこの TABLE ステートメントは重大度を定義します。 マクロ nn は、del フィールドには値が必須であることを示します。 マクロ uniq は、値が必須で、かつ一意である必要があることを示します。
#include :../schema.mac”
TABLE Severity {
id INTEGER uniq KEY; // key id
del INTEGER nn; // 0=present,1=gone
sym SYMBOL uniq S_KEY; // type symbol
desc ENT_DESC; // non‑OSI specified column
}
次のように TABLE ステートメントを変更して、[リクエストの詳細]ウィンドウの[優先度]フィールドを必須とします。
TABLE Call_Req {priority INTEGER NOT_NULL;}
以下の TABLE ステートメントは、[Resolution Code]フィールドを Call_Req テーブルに追加します。 フィールドの内容は数値であり、Resolution_Code テーブルを参照します。 この参照により、ユーザは[リクエストの詳細]ウィンドウの[解決方法コード]フィールドをダブルクリックして Resolution_Code テーブル内の値を表示することができます。‑
TABLE Call_Req {zres_code INTEGER REF Resolution_Code;}
| Copyright © 2012 CA. All rights reserved. | このトピックについて CA Technologies に電子メールを送信する |