Tworzenie przestrzennego połączenia „Wiele do jednego”


10

Usiłuję utworzyć połączenie, które nazywam połączeniem „wiele do jednego”. Nie wiem, czy to byłby właściwy termin, czy nie. Mam tabelę, która ma unikalne numery kont dla domów mobilnych (tj. - M1007970) na numer konta paczki (R0003285). (Wiele przyczep stacjonarnych na paczkę - wiele do jednego.) Muszę dołączyć tę tabelę do naszej geometrii paczki - i nadal mam tylko jeden wielokąt na paczkę.

Tak więc, na przykład, tabela może mieć trzy rzędy, które mają numery kont stacjonarnych M1007370 w jednym rzędzie, M1007371 w innym, a drugi z M1059370, ale wszystkie mają ten sam numer paczki R0032585. Nasza geometria działki miałaby tylko to samo pole co R0032585.

Dołączając, mam 12 088 zapisów z przyczep stacjonarnych i 44 103 paczek. Jeśli „zachowam wszystkie rekordy”, mam 44 103 rekordy z jedynie 7947 numerami kont w domach mobilnych (z pierwotnych 12 088). Jeśli dołączę na podstawie „zachowaj tylko pasujące rekordy”, otrzymam w sumie tylko 7 947 rekordów.

Zrobiłem to z powodzeniem w przeszłości i stworzyłem model. W tym modelu korzystam z tabeli dla domów mobilnych, aby dołączyć do warstwy paczki (.lyr - jedyny sposób, w jaki możesz / możesz dołączyć do modelu) na podstawie numeru konta paczki. Kopiuję obiekty zachowując tylko pasujące rekordy do geobazy danych pliku. Z pliku geobazy dołączam go następnie do naszego systemu SDE. To obecnie przestało działać z powodów, których nie mogę pojąć, ponieważ nic się nie zmieniło.

Być może ktoś może lepiej niż ja przekazać to, co próbuję zrobić, a jeśli nazywa się to czymś innym niż relacja wiele do jednego (nie wierzę, że to jeden do wielu ...).

Odpowiedzi:


9

Czasami jest to mylące, ale tak naprawdę jest to kwestia perspektywy. Zobacz ten diagram (z tego tematu ) w celach informacyjnych:

Schemat związku

To jest przykład pięciu relacji (i trzech różnych liczności ).

  1. Jeden do wielu: paczki są powiązane z tabelą ParcelToOwner w relacji jeden do wielu; jedna paczka może mieć wielu właścicieli (własność częściowa).
  2. Wiele do jednego: tabela ParcelToOwner jest powiązana z paczkami w relacji wiele do jednego; wielu właścicieli posiada (przynajmniej pewien procent) paczkę.
  3. Wiele do jednego: tabela ParcelToOwner jest powiązana z właścicielami w relacji wiele do jednego; wiele paczek może należeć (przynajmniej częściowo) do jednego właściciela.
  4. Jeden do wielu: Właściciele są powiązani ze stołem ParcelToOwner w relacji jeden do wielu; jeden właściciel może posiadać wiele paczek (ponownie, przynajmniej częściowo)
  5. Wiele do wielu: paczki są powiązane z właścicielami w relacji wiele do wielu; wiele paczek może być (przynajmniej częściowo) własnością wielu właścicieli, a wielu właścicieli może posiadać (przynajmniej częściowo) wiele paczek. Wyraża się to poprzez tabelę ParcelToOwner i wyżej wspomniane relacje. Większość DBMS nie może wyrazić relacji wiele do wielu bez tabeli pośredniej ( źródła ), stąd ten projekt.

Jak widać, to, czy relacja jest relacją jeden do wielu, czy wiele do jednego, zależy od tego, jak na nią spojrzysz.

To powiedziawszy, najłatwiejszym sposobem na osiągnięcie tego, czego szukasz, jest utworzenie tabeli zapytań, która tworzy wiele identycznych paczek, po jednej dla każdego domu mobilnego. Zobacz ten post na blogu, aby uzyskać więcej informacji: Szybka wskazówka na temat wykonywania łączenia 1: M

Jeśli wszystkie twoje dane znajdują się w geobazie przedsiębiorstwa, możesz również użyć warstwy zapytań, aby zrobić to samo w locie (bez pośredniej klasy obiektów).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.