属性リレーションシップ クラス

ジオデータベース内の属性付きリレーションシップ クラスには、関連するオブジェクト間のリレーションシップに関する追加情報を格納および提供する中間テーブルがあります。

属性付きでないリレーションシップ クラスでは、関連元テーブルの主キー フィールドの値が関連先テーブルの関連元の外部キー フィールドの値と直接関連している場合にリレーションシップが維持されます。 リレーションシップ情報を格納するための別個のテーブルはありません。 これは通常、テーブル内にある 1 つのレコードを別のテーブル内にある 1 つまたは複数のレコードに関連付けることができる (ただし、その逆は不可) 1 対 1 および 1 対多のリレーションシップで使用されます。

属性付きリレーションシップ クラスでは、これらの属性は 3 番目の中間テーブルに格納されます。 この中間テーブルには、関連テーブルまたはフィーチャクラスの主キーを参照している外部キーが含まれます。 中間テーブル自体は、リレーションシップに関する詳細な情報を提供する追加属性を持つことができます。 これは、テーブル内にある 1 つのレコードを別のテーブル内にある複数のレコードに関連付けることができる (その逆も可能) 多対多のリレーションシップで特に役立ちます。

多対多のリレーションシップ クラス

多対多のリレーションシップ クラスは、関連元テーブルのオブジェクトが複数の関連先オブジェクトに関連しているときや、1 つの関連先オブジェクトが複数の関連元オブジェクトに関連しているときに使用されます。

関連元テーブルの主キーが関連先の外部キーの値に直接関連している他の基数タイプ (1 対 1 や 1 対多など) と比較して、多対多のリレーションシップでは、関連付けをマッピングするために中間テーブルを使用する必要があります。 結果として、多対多のリレーションシップを作成すると、中間テーブルが自動的に作成されます。 中間テーブルは、関連元の主キーの値を関連先の外部キーの値にマッピングします。 各行は、1 つの関連元オブジェクトを 1 つの関連先オブジェクトに関連付けます。

多対多のリレーションシップでは中間テーブルを使用する必要があります。

中間テーブルが作成される際には、フィールドだけが生成されます。 ArcGIS は、どの関連元オブジェクトがどの関連先オブジェクトに関連しているのかを認識しないため、テーブル内に行を手動で作成する必要があります。

リレーションシップ中間テーブルの属性

多対多または属性付きリレーションシップ クラスの中間テーブルは、必要に応じて、もう 1 つの目的でも使用することができます。それは、リレーションシップ自体の属性を格納することです。 たとえば、土地区画データベースにおいて、所有者のテーブルに関連付けられている土地区画情報が含まれているデータセットがあるとします。 このリレーションシップの属性として、所有権の割合を指定することができます。 このような属性を格納する必要がある場合は、属性付きリレーションシップ クラスの作成時またはその後に、中間テーブルにそれらを追加することができます。

中間テーブルにはリレーションシップ自体の属性を格納できる

多対多のリレーションシップほど効果的ではありませんが、1 対 1 または 1 対多のリレーションシップをセットアップする際にも、その他の属性を中間テーブルに格納する必要がある場合があります。 その場合は、リレーションシップ クラスの作成ツールで [リレーションシップ クラスに属性を含める] オプションの横にあるチェックボックスをオンにしてそれを指定して、中間テーブルが自動的に作成されるようにする必要があります。

リレーションシップ クラスの作成ジオプロセシング ツールのリレーションシップ クラスに属性を含めるチェックボックス

多対多のリレーションシップの場合と同様に、属性付きリレーションシップ クラスの中間テーブルは関連元の主キーの値を関連先の外部キーの値にマッピングして、リレーションごとに任意数の属性を格納できるようにします。

属性付きリレーションシップ クラスを作成したら、その属性付きリレーションシップ クラスをマップに追加できます。 属性付きリレーションシップ クラスは、[コンテンツ] ウィンドウで開くことができるテーブルとして表示されます。 また、フィールド ビューから、この中間テーブルにユーザー定義フィールドを追加および削除できます。属性エディターを使用してこれらのユーザー定義フィールの値を設定および編集することもできます。

注意:

この中間テーブルはジオデータベースでオブジェクト クラスとしては認識されません。 したがって、この中間テーブルでは、属性ルール、ドメイン、サブタイプ、条件値、デフォルト値などのジオデータベースの動作を適用したり使用することはできません。

開始する前に、「リレーションシップ クラス作成の準備」を参照して、ジオデータベース リレーションシップ クラスに関する検討事項をご確認ください。

属性付きリレーションシップ クラスの作成方法

関連トピック