Création d'une jointure spatiale «plusieurs à un»


10

J'essaie de créer ce que j'appelle une jointure "plusieurs à un". Je ne sais pas si ce serait le bon terme ou non. J'ai une table qui a des numéros de compte uniques pour les maisons mobiles (c'est-à-dire - M1007970) par numéro de compte de colis (R0003285). (Beaucoup de mobil-homes par parcelle - plusieurs à un.) J'ai besoin de joindre cette table à notre géométrie de parcelle - et je n'ai toujours qu'un seul polygone par parcelle.

Ainsi, par exemple, la table peut avoir trois lignes qui ont les numéros de compte de maison mobile M1007370 sur une ligne, M1007371 sur une autre et une autre avec M1059370, mais tous ont le même numéro de colis R0032585. Notre géométrie de parcelle n'aurait que le même champ de R0032585.

Lors de mon adhésion, j'ai 12 088 dossiers de mobil-home et 44 103 colis. Si je «garde tous les dossiers», j'ai 44 103 dossiers avec seulement 7 947 numéros de compte de maison mobile (sur les 12 088 originaux). Si je m'inscris sur la base de "conserver uniquement les enregistrements correspondants", je me retrouve avec seulement 7 947 enregistrements au total.

Je l'ai fait avec succès dans le passé et j'ai créé un modèle. Dans ce modèle, j'utilise le tableau des mobil-homes pour rejoindre la couche parcelle (.lyr - la seule façon que vous pouvez / pourriez rejoindre dans un modèle) en fonction du numéro de compte de la parcelle. Je copie les fonctionnalités en conservant uniquement les enregistrements correspondants dans une géodatabase fichier. À partir de la géodatabase fichier, je l'ajoute ensuite à notre système SDE. Cela cesse actuellement de fonctionner pour des raisons que je ne peux pas comprendre, car rien n'a changé.

Peut-être que quelqu'un peut transmettre mieux que moi ce que j'essaie de faire, et si cela s'appelle autre chose qu'une relation plusieurs à un (je ne crois pas que ce soit une à plusieurs ...).

Réponses:


9

C'est parfois déroutant, mais c'est vraiment une question de perspective. Voir ce diagramme (de cette rubrique ) pour une référence:

Diagramme des relations

Ceci est un exemple de cinq relations (et trois cardinalités différentes ).

  1. Un-à-plusieurs: les parcelles sont liées à la table ParcelToOwner dans une relation un-à-plusieurs; une parcelle peut avoir plusieurs propriétaires (propriété partielle).
  2. Plusieurs à un: la table ParcelToOwner est liée aux parcelles dans une relation plusieurs à un; de nombreux propriétaires possèdent (au moins un certain pourcentage) une parcelle.
  3. Plusieurs à un: la table ParcelToOwner est liée aux propriétaires dans une relation plusieurs à un; de nombreuses parcelles peuvent appartenir (au moins partiellement) à un même propriétaire.
  4. Un-à-plusieurs: les propriétaires sont liés à la table ParcelToOwner dans une relation un-à-plusieurs; un propriétaire peut posséder plusieurs parcelles (encore une fois, au moins partiellement)
  5. Plusieurs à plusieurs: les colis sont liés aux propriétaires dans une relation plusieurs à plusieurs; de nombreuses parcelles peuvent appartenir (au moins partiellement) à de nombreux propriétaires, et de nombreux propriétaires peuvent posséder (au moins partiellement) de nombreuses parcelles. Cela est exprimé à travers la table ParcelToOwner et les relations susmentionnées. La plupart des SGBD ne peuvent pas exprimer une relation plusieurs-à-plusieurs sans une table intermédiaire ( source ), d'où cette conception.

Comme vous pouvez le voir, si une relation est un-à-plusieurs ou plusieurs-à-un dépend de la façon dont vous la regardez.

Cela étant dit, la façon la plus simple d'accomplir ce que vous recherchez est de créer une table de requête qui crée de nombreuses parcelles identiques, une pour chaque mobile home. Voir cet article de blog pour plus de détails: Un petit conseil sur la réalisation d'une jointure 1: M

Si toutes vos données se trouvent dans une géodatabase d'entreprise, vous pouvez également utiliser une couche de requête pour faire la même chose à la volée (pas de classe d' entités intermédiaire).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.