Come funzionano le relazioni
Ogni relazione richiede due campi che fanno riferimento l’uno all’altro:- Il lato MANY_TO_ONE — risiede sull’oggetto che detiene la chiave esterna.
- Il lato ONE_TO_MANY — risiede sull’oggetto che possiede la collezione.
FieldType.RELATION e si riferiscono reciprocamente tramite relationTargetFieldMetadataUniversalIdentifier.
Esempio: Post Card ha molti destinatari
UnPostCard può essere inviato a molti record PostCardRecipient. Ogni destinatario appartiene esattamente a una sola cartolina.
Passaggio 1: definisci il lato ONE_TO_MANY su PostCard (il lato “uno”):
src/fields/post-card-recipients-on-post-card.field.ts
src/fields/post-card-on-post-card-recipient.field.ts
Importazioni circolari: entrambi i campi di relazione fanno riferimento all’
universalIdentifier dell’altro. Per evitare problemi di importazioni circolari, esporta gli ID dei campi come costanti denominate da ciascun file e importale nell’altro. Il sistema di build le risolve in fase di compilazione.Relazioni con gli oggetti standard
Per creare una relazione con un oggetto Twenty integrato (Person, Company, ecc.), usaSTANDARD_OBJECT_UNIVERSAL_IDENTIFIERS:
src/fields/person-on-self-hosting-user.field.ts
Proprietà dei campi di relazione
Campi di relazione inline
Puoi anche dichiarare una relazione direttamente all’interno didefineObject. Quando è inline, ometti objectUniversalIdentifier — viene ereditato dall’oggetto padre: