Jak fungují relace
Každá relace vyžaduje dvě pole, která na sebe vzájemně odkazují:- Strana MANY_TO_ONE — je na objektu, který drží cizí klíč.
- Strana ONE_TO_MANY — je na objektu, který vlastní kolekci.
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
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žijteSTANDARD_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: