サポート > PC-MAPPING ヒント集 > データベース > 複数キーでのデータベースリンク
複数キーでのデータベースリンク
データベースリンク(他フィールド参照)において、リンクキーが複数フィールドに跨っている場合に、一度の操作で複数の「参照フィールド−リンクキーの対」を最大4つまで追加指定する事ができます。
参照される側のデータベースは上位のキーフィールド順にソートされている事が要求されます。
■ サンプル
サンプル [data42.zip(約260KB)]をダウンロードする
複数キー.pcm:サンプルプロジェクト

■ 準備
  1. 「地価公示点」レイヤーのポイント内部属性フィールド「利用現況」・「地積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〜

  2. データベース「利用現況・地積・駅距離」については次のようになっています。
    • フィールド「利用現況Key」(文字型)・「地積RankKey」(整数型)・「駅距離RankKey」(整数型)は、上記の「利用現況」・「地積Rank」・「駅からの距離Rank」フィールドに対応した値を持つ。
    • 「利用現況」「地積Rank」「駅からの距離Rank」フィールドの値の全ての組み合わせのレコードがあり、「備考説明」フィールド(文字型)には備考の説明を記載。

■ 操作方法
「地価公示点」レイヤーのポイント内部属性に、新規に「備考」(文字型)フィールドを追加して、「利用現況」・「地積Rank」・「駅からの距離Rank」の3つのフィールドを参照フィールドとして、データベース「利用現況・地積・駅距離」に複数キーでのデータベースリンク(他フィールド参照)を設定する事にします。

  1. [レイヤーエキスパート]-[ポイント]パネルを開き、<追加>ボタン-「個別に設定して追加」で、[属性フィールドの設定]ダイアログボックスを開きます。
    または、「地価公示点」レイヤーのポイント内部属性テーブルがアクティブな状態で、[設定]-[データベースの定義]で[データベースの定義]ダイアログボックスを開き、<追加>ボタンをクリックして、[属性フィールドの設定]ダイアログボックスを開く事もできます。

  2. 次のように設定をして、<拡張>ボタンを押します。
    • フィールド名:備考
    • スタイル:文字型
    • [データベースリンク(他フィールド参照)]チェックボックス:ON
      • 参照フィールド:利用現況
      • データベース:利用現況・地積・駅距離
      • キーフィールド:利用現況Key
      • データフィールド:備考説明

  3. [データベースリンク拡張]ダイアログボックスが開きますので、追加の「参照フィールド - リンクキーの対」を次のように設定します。
    • [キー1]チェックボックス:ON
      • 参照フィールド:地積Rank
      • キーフィールド:地積RankKey
    • [キー2]チェックボックス:ON
      • 参照フィールド:駅からの距離Rank
      • キーフィールド:駅距離RankKey

  4. <OK>ボタンをクリックして[データベースリンク拡張]ダイアログボックスを閉じます。

  5. <OK>ボタンをクリックして[属性フィールドの設定]ダイアログボックスを閉じます。

  6. 「地価公示点」レイヤーのポイント内部属性に「備考」フィールドが追加されて、そこには複数の「参照フィールド - キーフィールドの対」(ここでは、「利用現況」-「利用現況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」についてはまとまっている)

    ▼ レコードは参照される