You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Current »

テーブル定義の過程で、アクセス経路を定義する例を紹介します。

次に示す、互いに関連した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はループを避けるため無視。
  • No labels