サブタイプは、属性フィールドに基づいてグループ化されたテーブルまたはフィーチャクラスのレコードです。サブタイプは、コード値を作成することによって実装されるため、データ タイプが short または long integer のフィールドに関連付ける必要があります。これらの整数値はそれぞれサブタイプのフィーチャを表します。たとえば、RoadClass という名前のサブタイプでは、道路のフィーチャクラスにおいて有効なクラスを次のコードで表すことができます。
0 - 一般道路
1 - 簡易舗装道路
2 - 幹線道路
各サブタイプには、デフォルト値を独自に割り当てることができます。上記の例では、一般道路サブタイプの制限速度属性のデフォルト値を時速 25 マイルに設定し、幹線道路サブタイプのデフォルト値を時速 35 マイルに設定することができます。一般道路が道路フィーチャクラスに追加されるたびに、その制限速度属性が自動的に時速 25 マイルに設定されます。幹線道路が追加されるたびに、その制限速度属性が自動的に時速 35 マイルに設定されます。
各サブタイプには、特定フィールドの範囲ドメインやコード値属性ドメインを割り当てることもできます。たとえば、水道管のフィーチャクラスでは、水圧の範囲ドメインを実装することができます。送水管を表すサブタイプには、40 ~ 100psi の水圧を設定し、配水管を表すサブタイプには、50 ~ 75psi の水圧を設定することができます。
各サブタイプに別々の接続性ルール、リレーションシップ ルール、トポロジ ルールを関連付けることもできます。
フィーチャクラスとサブタイプのどちらを作成するか
ジオデータベースの設計において重要な要素は、サブタイプをどこで使用し、フィーチャクラスをどこで追加するかを決定することです。サブタイプまたはフィーチャクラスの作成を決定する際には、次を念頭に置いてください。
- オブジェクトをデフォルト値、属性ドメイン、接続性ルール、リレーションシップ ルールで区別する場合は、1 つのフィーチャクラスまたはテーブルに別々のサブタイプを作成することが推奨されます。
- 振舞い、属性、またはアクセス権限、あるいはバージョン対応であるかどうかに基づいてオブジェクトを区別する場合は、追加のフィーチャクラスを作成する必要があります。