Přejít na hlavní obsah
Vztahy mnoho-na-mnoho vám umožňují propojit více záznamů na obou stranách. Například: mnoho lidí může pracovat na mnoha projektech a každý projekt může mít mnoho lidí.
Lab Feature: Vztahy přes spojovací objekt jsou momentálně v Lab. Povolte je v Settings → Updates → Lab předtím, než budete pokračovat podle tohoto návodu.
Tato funkce také vyžaduje, aby byl povolen Advanced mode (přepínač je vpravo dole v Settings).

Kdy použít mnoho-na-mnoho

Použijte mnoho-na-mnoho, když obě strany vztahu mohou mít více propojení:
VztahPříklad
Lidé ↔ ProjektyOsoba pracuje na více projektech; projekt má více členů týmu
Společnosti ↔ ŠtítkySpolečnost může mít více štítků; štítek může platit pro více společností
Produkty ↔ ObjednávkyProdukt může být v několika objednávkách; objednávka obsahuje více produktů

Jak to funguje

Twenty používá u vztahů mnoho-na-mnoho vzor spojovacího objektu. Spojovací objekt leží mezi dvěma objekty a uchovává propojení:
People ←→ Project Assignments ←→ Projects
Objekt Project Assignments (spojovací) má:
  • Vztah na People (mnoho k jednomu)
  • Vztah na Projects (mnoho k jednomu)
Když povolíte přepínač pro vztah přes spojovací objekt, Twenty zobrazí propojené záznamy přímo místo zobrazení prostředních záznamů spojovacího objektu.

Předpoklady

  1. Povolte Junction Relations v Lab: Přejděte do Settings → Updates → Lab a povolte Junction Relations
  2. Povolte Advanced mode: Zapněte Advanced mode vpravo dole na postranním panelu Settings
  3. Naplánujte svůj datový model:
    • Které dva objekty propojujete?
    • Jak by se měl jmenovat spojovací objekt?

Krok 1: Vytvořte spojovací objekt

Nejprve vytvořte mezilehlý objekt, který bude uchovávat propojení.
  1. Přejděte do Nastavení → Datový model
  2. Klikněte na + New object
  3. Pojmenujte jej výstižně (např. “Project Assignment”, “Team Member”, “Product Order”)
  4. Klikněte na Uložit
Konvence pojmenování: Použijte název, který popisuje vztah, například “Project Assignment” nebo “Team Membership”. Tím bude datový model srozumitelnější.

Krok 2: Vytvořte vztahy ze spojovacího objektu

Přidejte relační pole ze spojovacího objektu do obou objektů, které chcete propojit.

První vztah (Junction → Objekt A)

  1. Vyberte svůj spojovací objekt v Settings → Data Model
  2. Klikněte na + Add Field
  3. Zvolte Relation jako typ pole
  4. Vyberte první objekt (např. “People”)
  5. Nastavte typ vztahu na Many-to-One (mnoho přiřazení může odkazovat na jednu osobu)
  6. Pojmenujte pole:
    • Pole na spojovacím objektu: např. “Person”
    • Pole na People: např. “Project Assignments”
  7. Klikněte na Uložit

Druhý vztah (Junction → Objekt B)

  1. Stále na spojovacím objektu klikněte na + Add Field
  2. Zvolte Relation jako typ pole
  3. Vyberte druhý objekt (např. “Projects”)
  4. Nastavte typ vztahu na Many-to-One
  5. Pojmenujte pole:
    • Pole na spojovacím objektu: např. “Project”
    • Pole na Projects: např. “Team Members”
  6. Klikněte na Uložit

Krok 3: Nakonfigurujte zobrazení vztahu přes spojovací objekt

Nyní nakonfigurujte zdrojové objekty tak, aby zobrazovaly propojené záznamy přímo a přeskočily mezilehlý spojovací objekt.
  1. Přejděte do Nastavení → Datový model
  2. Vyberte první objekt (např. “People”)
  3. Najděte relační pole směřující na spojovací objekt (např. “Project Assignments”)
  4. Klikněte pro úpravu pole
  5. Povolte “This is a relation to a Junction Object”
  6. Vyberte Target relation (např. “Project” — pole na spojovacím objektu, které ukazuje na druhou stranu)
  7. Klikněte na Uložit
Opakujte pro druhý objekt:
  1. Vyberte “Projects” v Data Model
  2. Upravte relační pole “Team Members”
  3. Povolte přepínač pro vztah přes spojovací objekt
  4. Vyberte “Person” jako cílový vztah
  5. Uložit

Výsledek

Po konfiguraci:
  • Na záznamu Person pole “Project Assignments” zobrazuje přímo Projects (nikoli záznamy přiřazení)
  • Na záznamu Project pole “Team Members” zobrazuje přímo People
Spojovací objekt stále existuje a ukládá propojení, ale rozhraní zobrazuje čistší pohled mnoho-na-mnoho.

Příklad: Lidé ↔ Projekty

Zde je kompletní postup:

Vytvořte spojovací objekt

  • Název: Project Assignment
  • Popis: “Propojuje lidi s projekty, na kterých pracují”

Přidejte vztahy

  1. Project Assignment → People
    • Typ: Many-to-One
    • Pole na Assignment: “Person”
    • Pole na People: “Project Assignments”
  2. Project Assignment → Projects
    • Typ: Many-to-One
    • Pole na Assignment: “Project”
    • Pole na Projects: “Team Members”

Nakonfigurujte zobrazení spojovacího objektu

  1. Na objektu People:
    • Upravte pole “Project Assignments”
    • Povolte přepínač pro vztah přes spojovací objekt
    • Cíl: “Project”
  2. Na objektu Projects:
    • Upravte pole “Team Members”
    • Povolte přepínač pro vztah přes spojovací objekt
    • Cíl: “Person”

Použití

  • Otevřete záznam osoby → Uvidíte její projekty přímo
  • Otevřete záznam projektu → Uvidíte členy týmu přímo
  • Vytvářejte nová propojení z obou stran

Přidávání doplňkových dat do propojení

Protože spojovací objekt je skutečný objekt, můžete přidat vlastní pole k ukládání informací o vztahu:
  • Role: “Developer”, “Designer”, “Manager”
  • Start Date: Kdy se k projektu připojili
  • Hours Allocated: Týdenní počet hodin na tomto projektu
Pro přístup k těmto datům přejděte přímo na spojovací objekt nebo jej dotazujte přes API.

Omezení

  • CSV Import/Export: Přímý import vztahů mnoho-na-mnoho není podporován. Místo toho importujte záznamy do spojovacího objektu.
  • Filters: Filtrování podle vztahů mnoho-na-mnoho může mít omezené možnosti.

Související