Skip to main content
Relationen verbinden zwei Objekte miteinander. In Twenty sind Relationen stets bidirektional — jede Relation hat zwei Seiten, und jede Seite wird als Feld deklariert, das auf die andere verweist.

Wie Relationen funktionieren

Jede Relation erfordert zwei Felder, die sich gegenseitig referenzieren:
  1. Die MANY_TO_ONE-Seite — befindet sich auf dem Objekt, das den Fremdschlüssel hält.
  2. Die ONE_TO_MANY-Seite — befindet sich auf dem Objekt, dem die Sammlung gehört.
Beide Felder verwenden FieldType.RELATION und verweisen über relationTargetFieldMetadataUniversalIdentifier gegenseitig aufeinander.

Beispiel: Postkarte hat viele Empfänger

Eine PostCard kann an viele PostCardRecipient-Datensätze gesendet werden. Jeder Empfänger gehört genau zu einer Postkarte. Schritt 1: Definieren Sie die ONE_TO_MANY-Seite auf PostCard (die “eine” Seite):
src/fields/post-card-recipients-on-post-card.field.ts
Schritt 2: Definieren Sie die MANY_TO_ONE-Seite auf PostCardRecipient (die “viele” Seite — hält den Fremdschlüssel):
src/fields/post-card-on-post-card-recipient.field.ts
Zyklische Importe: Beide Relationsfelder referenzieren gegenseitig den universalIdentifier des jeweils anderen. Um Probleme mit zyklischen Importen zu vermeiden, exportieren Sie Ihre Feld-IDs als benannte Konstanten aus jeder Datei und importieren Sie sie in der jeweils anderen. Das Build-System löst dies zur Kompilierzeit auf.

Relationen zu Standardobjekten

Um eine Relation mit einem integrierten Twenty-Objekt (Person, Company usw.) zu erstellen, verwenden Sie STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS:
src/fields/person-on-self-hosting-user.field.ts

Eigenschaften von Relationsfeldern

Inline-Relationsfelder

Sie können eine Relation auch direkt innerhalb von defineObject deklarieren. Wenn inline, lassen Sie objectUniversalIdentifier weg — er wird vom übergeordneten Objekt geerbt: