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 di giunzione
Un oggetto di giunzione collega un record di origine a uno o più record di destinazione. Ad esempio,PostCardRecipient può contenere sia una relazione postCard sia una relazione recipient. Nel campo ONE_TO_MANY dell’oggetto di origine, imposta junctionTargetFieldUniversalIdentifier sul campo di relazione dell’oggetto di giunzione che punta alla destinazione:
RECIPIENT_FIELD_ID deve identificare una relazione MANY_TO_ONE o morph nell’oggetto di giunzione. Indica a Twenty quale record correlato è la destinazione quando una funzionalità come la distribuzione delle attività della timeline attraversa la giunzione.
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: