アクセス経路の例
テーブル定義の過程で、アクセス経路を定義する例を紹介します。
次に示す、互いに関連した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はループを避けるため無視。