複数キーでのデータベースリンク
データベースリンク(他フィールド参照)において、リンクキーが複数フィールドに跨っている場合に、一度の操作で複数の「参照フィールド−リンクキーの対」を最大4つまで追加指定する事ができます。
参照される側のデータベースは上位のキーフィールド順にソートされている事が要求されます。
- ■ サンプル
サンプル [data42.zip(約260KB)]をダウンロードする
 | 複数キー.pcm | :サンプルプロジェクト |
- ■ 準備
-
- 「地価公示点」レイヤーのポイント内部属性フィールド「利用現況」・「地積Rank」・「駅からの距離Rank」はそれぞれ、次のようになっています。
- 「利用現況」(文字型):「住宅」・「店舗」・「事務所」・「倉庫」のいずれかの値
- 「地積Rank」(整数型):「地積」(整数型)を3ランクに分類した値
- 1=「地積」の値が0〜300
- 2=「地積」の値が300〜500
- 3=「地積」の値が500〜
- 「駅からの距離Rank」(整数型):「駅からの距離」(整数型)を4ランクに分類した値
- 1=「駅からの距離」の値が0〜100
- 2=「駅からの距離」の値が100〜500
- 3=「駅からの距離」の値が500〜1000
- 4=「駅からの距離」の値が1000〜
- データベース「利用現況・地積・駅距離」については次のようになっています。
- フィールド「利用現況Key」(文字型)・「地積RankKey」(整数型)・「駅距離RankKey」(整数型)は、上記の「利用現況」・「地積Rank」・「駅からの距離Rank」フィールドに対応した値を持つ。
- 「利用現況」「地積Rank」「駅からの距離Rank」フィールドの値の全ての組み合わせのレコードがあり、「備考説明」フィールド(文字型)には備考の説明を記載。
- ■ 操作方法
- 「地価公示点」レイヤーのポイント内部属性に、新規に「備考」(文字型)フィールドを追加して、「利用現況」・「地積Rank」・「駅からの距離Rank」の3つのフィールドを参照フィールドとして、データベース「利用現況・地積・駅距離」に複数キーでのデータベースリンク(他フィールド参照)を設定する事にします。
- [レイヤーエキスパート]-[ポイント]パネルを開き、<追加>ボタン-「個別に設定して追加」で、[属性フィールドの設定]ダイアログボックスを開きます。
または、「地価公示点」レイヤーのポイント内部属性テーブルがアクティブな状態で、[設定]-[データベースの定義]で[データベースの定義]ダイアログボックスを開き、<追加>ボタンをクリックして、[属性フィールドの設定]ダイアログボックスを開く事もできます。
- 次のように設定をして、<拡張>ボタンを押します。
- フィールド名:備考
- スタイル:文字型
- [データベースリンク(他フィールド参照)]チェックボックス:ON
- 参照フィールド:利用現況
- データベース:利用現況・地積・駅距離
- キーフィールド:利用現況Key
- データフィールド:備考説明
- [データベースリンク拡張]ダイアログボックスが開きますので、追加の「参照フィールド - リンクキーの対」を次のように設定します。
- [キー1]チェックボックス:ON
- 参照フィールド:地積Rank
- キーフィールド:地積RankKey
- [キー2]チェックボックス:ON
- 参照フィールド:駅からの距離Rank
- キーフィールド:駅距離RankKey
- <OK>ボタンをクリックして[データベースリンク拡張]ダイアログボックスを閉じます。
- <OK>ボタンをクリックして[属性フィールドの設定]ダイアログボックスを閉じます。
- 「地価公示点」レイヤーのポイント内部属性に「備考」フィールドが追加されて、そこには複数の「参照フィールド - キーフィールドの対」(ここでは、「利用現況」-「利用現況key」、「地積Rank」-「地積RankKey」、「駅からの距離Rank」-「駅距離RankKey」)によって参照される「データフィールド」(ここでは、「備考説明」フィールド)の値が参照表記されています。

- ■ 注意
-
- 参照フィールドとキーフィールドは整数型または文字型が可能ですが、対となるもの同士は同じ型である必要があります。
今回の例では次のようになります。
参照フィールド | キーフィールド |
「利用現況Key」(文字型) | 「利用現況Key」(文字型) |
「地積Rank」(整数型) | 「地積RankKey」(整数型) |
「駅からの距離Rank」(整数型) | 「駅距離RankKey」(整数型) |
- 参照される側のデータベースは、上位のキーフィールド順に(ここでは、「利用現況Key」、「地積RankKey」、「駅距離RankKey」の順)でソート(*1)されている必要があります。
(*1)同じ値のものがまとまっているの意味で、必ずしも昇順や降順である必要はありません。
- 《例1》データベース「利用現況・地積・駅距離」のレコード並びが、「利用現況Key」についてまとまっていない場合
- ▼ 「利用現況Key」フィールドについて、まとまっていない

▼ 離れているレコードは参照されない
- 《例2》データベース「利用現況・地積・駅距離」のレコード並びが、「地積RankKey」についてまとまっていない場合
- ▼ 「地積RankKey」フィールドについて、まとまっていない

▼ 離れているレコードは参照されない
- 《例3》データベース「利用現況・地積・駅距離」のレコード並びが、「地積RankKey」「駅距離RankKey」について昇順でも降順でもない場合
- ▼ 「地積RankKey」「駅距離RankKey」フィールドについて、昇順でも降順でもない(ただし、「利用現況Key」についてはまとまっている)

▼ レコードは参照される
|