Cum funcționează relațiile
Fiecare relație necesită două câmpuri care se referențiază reciproc:- Partea MANY_TO_ONE — se află pe obiectul care deține cheia străină.
- Partea ONE_TO_MANY — se află pe obiectul care deține colecția.
FieldType.RELATION și se referențiază încrucișat prin relationTargetFieldMetadataUniversalIdentifier.
Exemplu: Post Card are mulți destinatari
UnPostCard poate fi trimis către multe înregistrări PostCardRecipient. Fiecare destinatar aparține exact unui Post Card.
Pasul 1: Definiți partea ONE_TO_MANY pe PostCard (partea “one”):
src/fields/post-card-recipients-on-post-card.field.ts
src/fields/post-card-on-post-card-recipient.field.ts
Importuri circulare: ambele câmpuri de relație se referă unul la celălalt prin
universalIdentifier. Pentru a evita problemele de import circular, exportați ID-urile câmpurilor ca constante denumite din fiecare fișier și importați-le în celălalt. Sistemul de build le rezolvă în timpul compilării.Relaționarea cu obiectele standard
Pentru a crea o relație cu un obiect Twenty încorporat (Person, Company etc.), utilizațiSTANDARD_OBJECT_UNIVERSAL_IDENTIFIERS:
src/fields/person-on-self-hosting-user.field.ts
Proprietăți ale câmpului de relație
Câmpuri de relație inline
Puteți, de asemenea, să declarați o relație direct îndefineObject. Când este inline, omiteți objectUniversalIdentifier — este moștenit de la obiectul părinte: