Wie Relationen funktionieren
Jede Relation erfordert zwei Felder, die sich gegenseitig referenzieren:- Die MANY_TO_ONE-Seite — befindet sich auf dem Objekt, das den Fremdschlüssel hält.
- Die ONE_TO_MANY-Seite — befindet sich auf dem Objekt, dem die Sammlung gehört.
FieldType.RELATION und verweisen über relationTargetFieldMetadataUniversalIdentifier gegenseitig aufeinander.
Beispiel: Postkarte hat viele Empfänger
EinePostCard 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
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 SieSTANDARD_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 vondefineObject deklarieren. Wenn inline, lassen Sie objectUniversalIdentifier weg — er wird vom übergeordneten Objekt geerbt: