ユーザーガイド > ビューとテーブルリソース > ビューとテーブルのリソースの設計 > ビューまたはテーブルリソースの外部キーの定義
 
ビューまたはテーブルリソースの外部キーの定義
リレーショナルテーブルの外部キーとは、別のテーブルの主キー列と一致する列です。テーブルAの列XがテーブルBの列Yに関連し、列YがテーブルBの主キーであるとすると、外部キーがテーブルAに表示されます。
外部キーの関係は、A.X = B.Yを結合する場合に、テーブルAの行ごとにテーブルBの1行が見つかることを示しています。この情報が、結合操作のヒントとして役立ちます。
Studioのビューおよびテーブルエディターで、[Foreign Keys(外部キー)]パネルを使用して、データソース内の任意の外部キーを認識し、使用を許可する定義を作成できます。定義する外部キーごとに、最初に外部キーとなる列を選択し、次に親テーブルで対応する主キー列を識別する必要があります。
外部キーを定義し、外部キーの作成をテストするプロセスは次のとおりです。
外部キーを定義するには
1.ビューまたはテーブルを開きます。
ここで使用されるビューには、データソースds_orders (/shared/examples/ds_orders)の2つのテーブル(orderdetailsとorders)があります。
射影される列は、orderdetails.ProductID、orderdetails.UnitPrice、orders.ShippingMethodIDです。ビューエディターの[Grid(グリッド)]パネルと[Columns(列)]パネルを確認します。
2.エディターの[Foreign Keys(外部キー)]タブをクリックして、[Foreign Keys(外部キー)]パネルを開きます。
3.[Add(追加)]ボタン(エディターの左下のセクション内)をクリックします。
4.入力ウィンドウが開くので、定義する外部キーの名前(たとえばFK_ProductID)を入力し、[OK]をクリックします。
「外部キー列」としてマークアップに利用できる列が、セクション[Available Columns(使用可能な列)]にリストされます。これらの列は、ビューまたはテーブルでの射影用に選択された列とまったく同じです。エディターの[Columns(列)]パネルを確認します。
5.外部キーとして識別したい列を選択します。
この例では、ProductIDが選択されています。
この外部キー列の主が含まれる親テーブルを指定します。親テーブルは、参照テーブルとも呼ばれます。
6.[Browse(参照)]ボタンをクリックし、ProductIDが主キーである親テーブルを見つけます。
この例では、以下が親テーブルです。
/shared/examples/ds_inventory/products
 
7.進む矢印ボタンを使用して、ProductIDを[Available Columns(使用可能な列)]から[Foreign Column(外部列)]セクションに移動します。
親テーブルの列は、[Primary Column(主列)]セクションのドロップダウンリストに表示され、主キー列が表示されます。
8.主キー列(ProductID)をドロップダウンリスト([Primary Column(主列)]セクション内)で選択し、リソースを保存します。これで、ビューの列(ProductID)が外部キーとして識別されるようになります。
このプロセスを繰り返して、必要な数の外部キーを定義できます。
外部キーの作成をテストするには
1.リソースを公開します。公開の詳細については、「リソースの公開」を参照してください。定義した外部キーが外部クライアントアプリケーションからアクセス可能であることも確認できます。
2.システムテーブル/services/databases/system/ALL_FOREIGN_KEYSを開き、その内容を表示します。
3.以下を右クリックします。
Data Services/Databases/system/ALL_FOREIGN_KEYS
 
4.[Show Contents(コンテンツを表示)]を選択します。
または、Data Services/Databases/system/ALL_FOREIGN_KEYSを開き、[Show Contents(コンテンツを表示)]をクリックします。定義した外部キーが、[Result(結果)]パネルに一覧表示されます。