Створення просторового об'єднання "Багато хто до одного"


10

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

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

Під час приєднання я маю 12 088 записів мобільного дому та 44103 посилок. Якщо я "зберігаю всі записи", у мене 44103 записи із лише 7 947 номерами домашніх мобільних рахунків (з початкових 12,088). Якщо я приєднаюся на основі "зберігати тільки відповідні записи", я закінчую всього 7 947 записів.

Я це робив успішно в минулому і створив модель. У цій моделі я використовую таблицю для мобільних будинків для приєднання до рівня посилок (.lyr - єдиний спосіб, коли ви можете / можете приєднатись до моделі) на основі номера рахунку посилки. Я копіюю функції, зберігаючи лише відповідні записи на базу даних геоданих. Потім з бази даних геоданих я додаю її до нашої системи SDE. Наразі ця робота перестала працювати з причин, які я не можу зрозуміти, оскільки нічого не змінилося.

Можливо, хтось може передати краще, ніж я, те, що я намагаюся зробити, і якщо це називається чимось іншим, ніж багато стосунків один (я не вірю, що це один для багатьох ...).

Відповіді:


9

Іноді це заплутано, але це справді питання перспективи. Дивіться цю діаграму (з цієї теми ) для довідки:

Діаграма відносин

Це приклад п’яти стосунків (і трьох різних кардинальностей ).

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

Як бачите, чи стосунки є один-багато-багато чи багато-до-одного, залежить від того, як ви на це дивитесь.

Все, що говорити, найпростіший спосіб досягти того, що ви шукаєте, - створити таблицю запитів, яка створює безліч однакових посилок, по одній для кожного мобільного будинку. Докладнішу інформацію див. У цій публікації щоденника: Швидкий підказок щодо виконання приєднання 1: M

Якщо всі ваші дані знаходяться в базі даних геоданих підприємств, ви також можете використовувати шар запитів, щоб зробити те ж саме, на ходу (немає проміжного класу функцій).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.