Skip to main content
İlişkiler iki nesneyi birbirine bağlar. Twenty’de ilişkiler her zaman çift yönlüdür — her ilişkinin iki tarafı vardır ve her taraf diğeriyle ilişkili alan olarak tanımlanır.

İlişkiler nasıl çalışır

Her ilişki, birbirine referans veren iki alan gerektirir:
  1. MANY_TO_ONE tarafı — yabancı anahtarı tutan nesne üzerinde bulunur.
  2. ONE_TO_MANY tarafı — koleksiyona sahip olan nesne üzerinde bulunur.
Her iki alan da FieldType.RELATION kullanır ve relationTargetFieldMetadataUniversalIdentifier aracılığıyla birbirine karşılıklı referans verir.

Örnek: Posta Kartı’nın birçok Alıcısı vardır

Bir PostCard birçok PostCardRecipient kaydına gönderilebilir. Her alıcı tam olarak bir posta kartına aittir. Adım 1: PostCard üzerinde ONE_TO_MANY tarafını tanımlayın (“bir” taraf):
src/fields/post-card-recipients-on-post-card.field.ts
Adım 2: PostCardRecipient üzerinde MANY_TO_ONE tarafını tanımlayın (“çok” taraf — yabancı anahtarı tutar):
src/fields/post-card-on-post-card-recipient.field.ts
Döngüsel içe aktarmalar: Her iki ilişki alanı da birbirlerinin universalIdentifier değerine referans verir. Döngüsel içe aktarma sorunlarından kaçınmak için, alan kimliklerinizi her dosyadan adlandırılmış sabitler olarak dışa aktarın ve diğerinde içe aktarın. Derleme sistemi bunları derleme zamanında çözer.

Bağlantı ilişkileri

Bir bağlantı nesnesi, bir kaynak kaydını bir veya daha fazla hedef kayda bağlar. Örneğin, PostCardRecipient hem bir postCard ilişkisini hem de bir recipient ilişkisini tutabilir. Kaynak nesnenin ONE_TO_MANY alanında, junctionTargetFieldUniversalIdentifier değerini bağlantı nesnesinde hedefi işaret eden ilişki alanına ayarlayın:
RECIPIENT_FIELD_ID, bağlantı nesnesindeki bir MANY_TO_ONE veya morph ilişkisini tanımlamalıdır. zaman çizelgesi etkinliği yayılımı gibi bir özellik bağlantı nesnesinden geçtiğinde, Twenty’ye hangi ilişkili kaydın hedef olduğunu bildirir.

Standart nesnelerle ilişkilendirme

Yerleşik bir Twenty nesnesiyle (Person, Company, vb.) ilişki oluşturmak için STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS kullanın:
src/fields/person-on-self-hosting-user.field.ts

İlişki alanı özellikleri

Satır içi ilişki alanları

Bir ilişkiyi doğrudan defineObject içinde de tanımlayabilirsiniz. Satır içi olduğunda, objectUniversalIdentifier’ı atlayın — üst nesneden devralınır: