空間的な「多対1」結合の作成


10

私は「多対1」の結合と呼ばれるものを作成しようとしています。それが正しい言葉かどうかはわかりません。パーセルのアカウント番号(R0003285)ごとにモバイルホーム(つまり-M1007970)の一意のアカウント番号を持つテーブルがあります。(パーセルごとに多くのモバイルホーム-多対1。)このテーブルをパーセルジオメトリに結合する必要があります-それでも、パーセルごとに1つのポリゴンしかありません。

したがって、たとえば、テーブルには3つの行があり、1つの行にモバイルホームアカウント番号M1007370、別の行にM1007371、および別の行にM1059370がありますが、すべて同じパーセル番号R0032585です。パーセルジオメトリには、R0032585と同じフィールドしかありません。

入会すると、12,088のモバイルホームレコードと44,103の小包があります。「すべてのレコードを保持する」場合、7,947のモバイルホームアカウント番号(元の12,088)だけの44,103レコードがあります。「一致するレコードのみを保持」に基づいて参加すると、合計で7,947件のレコードしか得られません。

過去に成功し、モデルを作成しました。このモデルでは、モバイルホームのテーブルを使用して、パーセルアカウント番号に基づいてパーセルレイヤー(.lyr-モデルで結合できる/結合できる唯一の方法)に結合します。一致するレコードのみを保持するフィーチャをファイルジオデータベースにコピーします。次に、ファイルジオデータベースからSDEシステムに追加します。何も変わっていないので、これは私が理解できない理由で現在動作を停止しました。

おそらく、誰かが私がやろうとしていることよりも上手に伝えることができ、それが多対1関係以外のものと呼ばれる場合は(1対多だとは思わない...)。

回答:


9

時々混乱しますが、それは本当に見方の問題です。参照については、このトピックのこの図を参照してください。

関係図

これは、5つの関係(および3つの異なるカーディナリティ)の例です。

  1. 1対多:パーセルは、1対多の関係でParcelToOwnerテーブルに関連付けられています。1つの区画に多数の所有者がいる場合があります(部分所有)。
  2. 多対1: ParcelToOwnerテーブルは、多対1の関係でパーセルに関連付けられています。多くの所有者が小包を(少なくともある程度の割合で)所有しています。
  3. 多対1: ParcelToOwnerテーブルは、多対1の関係で所有者に関連付けられています。多くの区画が1人の所有者によって(少なくとも部分的に)所有されている場合があります。
  4. 1対多:所有者は1対多の関係でParcelToOwnerテーブルに関連付けられます。1人の所有者が多くの区画を所有する可能性があります(ここでも、少なくとも部分的に)
  5. 多対多:区画は、多対多の関係で所有者に関連しています。多くの区画が(少なくとも部分的に)多くの所有者によって所有されている場合があり、多くの所有者が(少なくとも部分的に)多くの区画を所有している場合があります。これは、ParcelToOwnerテーブルと前述の関係によって表現されます。ほとんどのDBMSは、中間テーブル(source)がないと多対多の関係を表現できないため、この設計になります。

ご覧のように、関係が1対多であるか多対1であるかは、それをどのように見るかに依存します。

そうは言っても、探しているものを達成する最も簡単な方法は、モバイルホームごとに1つずつ、多数の同一の区画を作成するクエリテーブルを作成することです。詳細については、このブログ投稿を参照してください 。1:M結合の実行に関する簡単なヒント

すべてのデータがエンタープライズジオデータベースにある場合は、クエリレイヤーを使用して同じことをその場で実行することもできます(中間フィーチャクラスはありません)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.