Создание пространственного соединения «многие к одному»

10

Я пытаюсь создать то, что я называю объединением "многие к одному". Я не знаю, будет ли это правильный термин или нет. У меня есть таблица с уникальными номерами счетов для мобильных домов (т.е. - M1007970) на номер счета посылки (R0003285). (Многие мобильные дома на одну посылку - многие на одну.) Мне нужно объединить эту таблицу с геометрией нашей посылки - и все еще иметь только один многоугольник на одну посылку.

Так, например, таблица может иметь три строки с номерами мобильных учетных записей M1007370 в одной строке, M1007371 в другой и еще одной с M1059370, но все они имеют одинаковый номер посылки R0032585. Наша геометрия участка будет иметь только то же поле R0032585.

При присоединении у меня 12 088 записей на дом на колесах и 44 103 посылки. Если я «буду вести все записи», у меня будет 44 103 записей, в которых будет только 7 947 номеров мобильных домашних учетных записей (из первоначальных 12 088). Если я присоединяюсь по принципу «держать только совпадающие записи», я получаю всего 7 947 записей.

Я сделал это успешно в прошлом и создал модель. В этой модели я использую таблицу для мобильных домов, чтобы присоединиться к слою участков (.lyr - единственный способ, которым вы можете / могли бы присоединиться в модели) на основе номера счета участка. Я копирую объекты, сохраняя только совпадающие записи, в файловую базу геоданных. Затем из файловой базы геоданных я добавляю ее в нашу систему SDE. В настоящее время это перестало работать по причинам, которые я не могу понять, так как ничего не изменилось.

Возможно, кто-то может передать лучше, чем я, то, что я пытаюсь сделать, и если это называется чем-то отличным от отношений «один на один» (я не верю, что это один ко многим ...)

Evan
источник

Ответы:

9

Иногда это сбивает с толку, но это действительно вопрос перспективы. Смотрите эту схему (из этой темы ) для справки:

Диаграмма отношений

Это пример пяти отношений (и трех разных мощностей ).

  1. Один ко многим: участки связаны с таблицей ParcelToOwner в отношении один ко многим; одна посылка может иметь много владельцев (частичная собственность).
  2. Многие-к-одному: таблица ParcelToOwner связана с участками в отношениях «многие-к-одному»; многие владельцы владеют (хотя бы некоторым процентом) посылкой.
  3. Многие-к-одному: таблица ParcelToOwner связана с Владельцами в отношениях «многие-к-одному»; Многие посылки могут принадлежать (по крайней мере частично) одному владельцу.
  4. Один ко многим: владельцы связаны с таблицей ParcelToOwner в отношении один ко многим; один владелец может иметь много посылок (опять же, хотя бы частично)
  5. Многие ко многим: Посылки связаны с Владельцами в отношениях многие ко многим; многие участки могут (хотя бы частично) принадлежать многим владельцам, а многие владельцы могут владеть (хотя бы частично) многими участками. Это выражается через таблицу ParcelToOwner и вышеупомянутые отношения. Большинство СУБД не могут выразить отношение «многие ко многим» без промежуточной таблицы ( источника ), отсюда и такой дизайн.

Как вы можете видеть, зависит ли отношение один-ко-многим или многие-к-одному, как вы на это смотрите.

Все это, как говорится, самый простой способ выполнить то, что вы ищете, это создать таблицу запросов, которая создает много одинаковых посылок, по одной для каждого мобильного дома. См. Этот пост в блоге для более подробной информации: быстрый совет по выполнению 1: M объединения

Если все ваши данные находятся в многопользовательской базе геоданных, вы также можете использовать слой запросов, чтобы делать то же самое на лету (без промежуточного класса объектов).

blah238
источник