[ |../../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はループを避けるため無視。
[ |../../index.htm#lansa/l4wdev04_0295.htm]