Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

[ Image Removed |../../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はループを避けるため無視。

...