Page History
[ |../../index.htm#lansa/l4wdev04_0295.htm]
現在地:
...
テーブル定義の過程で、アクセス経路を定義する例を紹介します。
次に示す、互いに関連した4つのテーブルがあるとしましょう。
テーブル: |
|---|
ORDHDR | ORDLIN | CUSMST | PROMST | |
説明: |
|---|
注文の頭書き | 注文の明細行 | 顧客マスター | 製品マスター | |
列: |
|---|
ORDNUM CUSTNO DATE | ORDNUM ORDLIN QUANTY PRODNO | CUSTNO NAME ADDR1 ADDR2 ADDR3 | PRODNO DESC PRICE TAXRTE | ||
プライマリ・キー | 1 | ORDNUM | ORDNUM | CUSTNO | PRODNO |
|---|
2 |
ORDLIN |
インデックス: |
|---|
ORDHDRV1O | RDLINV1 |
そのキー | 1 | CUSTNO | PRODNO |
|---|
このデータベースを順にたどって必要な情報を取得できるようにするためには、次のアクセス経路を定義する必要があります。
定義名 | アクセス経路名 | このルートを経由してアクセスするテーブル | 想定する最大レコード数 | レコードが見つからなかった場合の動作 | アクセスに使うキー列/値 |
|---|---|---|---|---|---|
ORDHDR | ORDHRT1 | ORDLIN | 99 | IGNORE | ORDNUM |
ORDHRT2 | CUSMST | 1 | ABORT | CUSTNO | |
ORDLIN | ORDLRT1 | ORDHDR | 1 | ABORT | ORDNUM |
ORDLRT2 | PROMST | 1 | ABORT | PRODNO | |
CUSMST | CUSMRT1 | ORDHDRV1 | 9999 | IGNORE | CUSTNO |
PROMST | PROMRT1 | ORDLINV1 | 9999 | IGNORE | PRODNO |
この表を見ると、アクセス経路の連鎖をどのようにたどっていくかがわかります。例えばPROMST(製品マスター)を起点とすると、次のような経路が見つかります。
- PROMSTから、アクセス経路PROMRT1をたどって、当該製品が現れる注文の明細行(ORDLIN)を取得(インデックスORDLINV1経由)。
- ORDLINから、アクセス経路ORDLRT1をたどって、対応する注文書の顧客番号や日付(ORDHDR)を取得。PROMSTに戻るアクセス経路ORDLRT2は、ループになるのを避けるため無視。
- ORDHDRから、アクセス経路ORDHRT2をたどって、対応する顧客の名前や住所(CUSMST)を取得。やはりアクセス経路ORDHRT1はループを避けるため無視。
...