リレーションシップ クラスを作成する際には、1 対 1、1 対多、または多対多の基数を指定します。
リレーションシップでは、多くの場合、さらに制限を定義する必要があります。 たとえば、土地区画と建物のリレーションシップでは、建物をそれぞれ 1 つの土地区画に関連付けたり、1 つの土地区画に追加できる建物の最大数を設定する必要があります。 土地区画に建物を忘れずに関連付け、土地区画に関連付けられる建物の数が多くなりすぎないようにする必要があります。
サブタイプがある場合は、関連先の特定タイプのオブジェクトに関連付けることができる、関連元のオブジェクトの数およびタイプを制限することができます。 たとえば、鋼鉄製の電柱はクラス A の変圧器をサポートし、木製の電柱はクラス B の変圧器をサポートすることにします。 さらに、有効なサブタイプの組みごとに、有効な基数の範囲を制限する必要もあります。 たとえば、鋼鉄性の電柱はクラス A の変圧器を 0 ~ 3 個までサポートでき、木製の電柱ではクラス B の変圧器を 0 ~ 2 個までサポートできることにします。
リレーションシップ クラス ルールの表示
リレーションシップ クラスのリレーションシップ ルールを表示するには、次の手順を実行します。
- [カタログ] ウィンドウでリレーションシップ クラスを右クリックして [リレーションシップ クラス プロパティ] ダイアログ ボックスを開きます。
- [リレーションシップ クラス プロパティ] ダイアログ ボックスの [ルール] タブをクリックします。
リレーションシップ クラスに関して適用可能なすべてのルールのリストが表示されます。
[有効] 列は、どのルールが現在アクティブであるかを示します。
[並べ替え] ドロップダウン メニューで [関連元から関連先サブタイプ] または [関連先から関連元サブタイプ] を選択することで、リレーションシップ クラス ルールを並べ替えることができます。
リレーションシップ クラスへのルールの追加
リレーションシップ クラスを作成した後、ルールを追加することで基数を制御することができます。 リレーションシップ ルールによって、関連先のフィーチャクラス/テーブル内の特定の種類のオブジェクトに関連付けることができる、関連元のフィーチャクラス/テーブル内のオブジェクトのタイプを制限することができます。
リレーションシップ クラスにルールを追加するには、次の手順を実行します。
- リレーションシップ クラスにルールを追加するには、[リレーションシップ クラス プロパティ] ダイアログ ボックスから直接ルールを追加するか、[リレーションシップ クラスにルールを追加 (Add Rule To Relationship Class)] ジオプロセシング ツールを使用します。
- [リレーションシップ クラス プロパティ] ダイアログ ボックスから直接ルールを追加する場合、[カタログ] ウィンドウで、リレーションシップ クラスを右クリックして [プロパティ] をクリックします。
- [ルール] タブで、リレーションシップ クラスに追加するルールを示している行の [有効] チェックボックスをオンにします。
- 関連元テーブルにサブタイプがある場合、リレーションシップ クラス ルールを関連付けるサブタイプを選択します。 関連元クラスにサブタイプがない場合、そのリレーションシップ ルールはすべてのフィーチャに適用されます。
- [リレーションシップ クラスにルールを追加 (Add Rule To Relationship Class)] ジオプロセシング ツールを使用する場合、リンクをクリックしてリレーションシップ クラスにルールを追加ジオプロセシング ツールを開きます。
- [入力リレーションシップ クラス] の横の参照ボタン をクリックして、リレーションシップ クラスが格納されているジオデータベースを参照します。 このジオデータベースはファイル ジオデータベース、モバイル ジオデータベース、またはエンタープライズ ジオデータベースのいずれかです。
ヒント:
リレーションシップ クラスがエンタープライズ ジオデータベースに格納されている場合、このツールはデータの所有者のみが正常に実行できます。
- 関連元テーブルにサブタイプがある場合、必要に応じて、[関連元サブタイプ] のドロップダウン メニューから、リレーションシップ クラス ルールを関連付けるサブタイプを選択します。 関連元クラスにサブタイプがない場合、そのリレーションシップ ルールはすべてのフィーチャに適用されます。
- [入力リレーションシップ クラス] の横の参照ボタン をクリックして、リレーションシップ クラスが格納されているジオデータベースを参照します。 このジオデータベースはファイル ジオデータベース、モバイル ジオデータベース、またはエンタープライズ ジオデータベースのいずれかです。
- [リレーションシップ クラス プロパティ] ダイアログ ボックスから直接ルールを追加する場合、[カタログ] ウィンドウで、リレーションシップ クラスを右クリックして [プロパティ] をクリックします。
- それぞれ対応するセルに整数を入力して、関連元および関連先のルールに対して適切な [最小] 基数と [最大] 基数を設定します。
- 追加するルールごとに 1 ~ 2 のステップを繰り返します。
- [実行] をクリックするか ([リレーションシップ クラスにルールを追加 (Add Rule To Relationship Class)] ジオプロセシング ツールを使用している場合)、[リレーションシップ クラス プロパティ] ダイアログ ボックスの [OK] をクリックして、変更を適用します。
リレーションシップ クラスにリレーションシップ ルールを追加すると、そのルールは唯一の有効なリレーションシップとなります。 他のリレーションシップおよび基数を有効にするには、さらにリレーションシップ ルールを追加する必要があります。
たとえば、HazMat を 1 ~ 2 つの Deep に関連付けることができ、2 ~ 7 つの Shallow に関連付けることができます。 ただし、Sanitary を Deep に関連付けた場合、両者の間にはルールが設定されていないので、[フィーチャの整合チェック] コマンドによってリレーションシップは無効であると判断されます。
リレーションシップ クラス ルールの削除
リレーションシップ クラスからルールを削除するには、次の手順を実行します。
- リレーションシップ クラスからルールを削除するには、[リレーションシップ クラス プロパティ] ダイアログ ボックスから直接ルールを削除するか、[リレーションシップ クラスにルールを追加 (Add Rule To Relationship Class)] ジオプロセシング ツールを使用します。
- [リレーションシップ クラス プロパティ] ダイアログ ボックスから直接ルールを削除する場合、[カタログ] ウィンドウで、リレーションシップ クラスを右クリックして [プロパティ] をクリックします。
- [ルール] タブで、リレーションシップ クラスから削除するルールを示している行の [有効] チェックボックスをオフにします。
- 関連元テーブルにサブタイプがある場合、リレーションシップ クラス ルールを削除するサブタイプを選択します。
- [OK] をクリックして変更を完了します。
- リレーションシップ クラスからルールを削除ジオプロセシング ツールを使用する場合、リンクをクリックして [リレーションシップ クラスからルールを削除 (Remove Rule from Relationship Class)] ジオプロセシング ツールを開きます。
- [入力リレーションシップ クラス] の横の参照ボタン をクリックして、ルールを削除するリレーションシップ クラスを参照します。 リレーションシップ クラスが格納されているジオデータベースは、ファイル ジオデータベース、モバイル ジオデータベース、エンタープライズ ジオデータベースのいずれかです。
ヒント:
リレーションシップ クラスがエンタープライズ ジオデータベースに格納されている場合、このツールはデータの所有者のみが正常に実行できます。
- 関連元テーブルにサブタイプがある場合、必要に応じて、[関連元サブタイプ] のドロップダウン メニューから、リレーションシップ クラス ルールを削除するサブタイプを選択します。 関連元クラスにサブタイプがない場合、そのリレーションシップ ルールはすべてのフィーチャに適用されます。
- 関連先クラスにサブタイプがある場合、必要に応じて、[関連先サブタイプ] のドロップダウン メニューから、リレーションシップ クラス ルールを削除するサブタイプを選択します。
- [すべて削除] では、次のシナリオが適用されます。
- オン - すべてのリレーションシップ ルールが入力リレーションシップ クラスから削除されます。
- オフ - 指定した関連元および関連先サブタイプのルールのみが削除されます。 これがデフォルトです。
- [実行] をクリックして変更を完了します。
- [入力リレーションシップ クラス] の横の参照ボタン をクリックして、ルールを削除するリレーションシップ クラスを参照します。 リレーションシップ クラスが格納されているジオデータベースは、ファイル ジオデータベース、モバイル ジオデータベース、エンタープライズ ジオデータベースのいずれかです。
- [リレーションシップ クラス プロパティ] ダイアログ ボックスから直接ルールを削除する場合、[カタログ] ウィンドウで、リレーションシップ クラスを右クリックして [プロパティ] をクリックします。