Přejít na hlavní obsah
Relace propojují dva objekty. Ve Twenty jsou relace vždy obousměrné — každá relace má dvě strany a každá strana je deklarována jako pole, které odkazuje na tu druhou.

Jak fungují relace

Každá relace vyžaduje dvě pole, která na sebe vzájemně odkazují:
  1. Strana MANY_TO_ONE — je na objektu, který drží cizí klíč.
  2. Strana ONE_TO_MANY — je na objektu, který vlastní kolekci.
Obě pole používají FieldType.RELATION a vzájemně se odkazují prostřednictvím relationTargetFieldMetadataUniversalIdentifier.

Příklad: Pohlednice má mnoho příjemců

PostCard lze odeslat mnoha záznamům PostCardRecipient. Každý příjemce náleží přesně jedné pohlednici. Krok 1: Definujte stranu ONE_TO_MANY na PostCard (strana “one”):
src/fields/post-card-recipients-on-post-card.field.ts
Krok 2: Definujte stranu MANY_TO_ONE na PostCardRecipient (strana “many” — drží cizí klíč):
src/fields/post-card-on-post-card-recipient.field.ts
Cyklické importy: obě relační pole odkazují na universalIdentifier toho druhého. Abyste předešli problémům s cyklickými importy, exportujte ID polí jako pojmenované konstanty z každého souboru a v druhém je importujte. Build systém je vyřeší v době kompilace.

Vazby na standardní objekty

Chcete-li vytvořit relaci s vestavěným objektem Twenty (Person, Company atd.), použijte STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS:
src/fields/person-on-self-hosting-user.field.ts

Vlastnosti relačních polí

Vložená relační pole

Relaci můžete také deklarovat přímo uvnitř defineObject. Pokud je pole vložené, vynechejte objectUniversalIdentifier — dědí se z nadřazeného objektu: