Files
upstream-twenty/packages/twenty-docs/l/tr/user-guide/data-model/how-tos/create-many-to-many-relations.mdx
upstream-mirror e7da97194a
Some checks failed
App Prod-Parity E2E Dispatch / dispatch (push) Failing after 10s
CD Storybook UI / build (push) Failing after 3m25s
CD Storybook UI / dispatch (push) Has been skipped
CD deploy main / website-changed-files (push) Successful in 18m8s
CI Agent Skills / changed-files-check (push) Successful in 18m9s
CI Create App E2E minimal / changed-files-check (push) Successful in 24s
CI Create App / changed-files-check (push) Successful in 26s
CI Docs / changed-files-check (push) Successful in 26s
CI Emails / changed-files-check (push) Successful in 28s
CI Example App Hello World / changed-files-check (push) Successful in 23s
CI Front / changed-files-check (push) Has been skipped
CI Example App Postcard / changed-files-check (push) Successful in 27s
CI UI / changed-files-check (push) Has been skipped
CI Utils Test / changed-files-check (push) Successful in 45s
CI Twenty Apps / discover (push) Successful in 1m3s
CD deploy main / deploy-main (push) Failing after 3s
CI Agent Skills / agent-skills-validate (push) Has been skipped
CI Create App / create-app-test (lint) (push) Has been skipped
CI Emails / emails-test (push) Has been skipped
CI Front / front-task (lingui:compile) (push) Has been skipped
CI Front / front-task (lint) (push) Has been skipped
CI Example App Postcard / example-app-postcard (push) Has been skipped
CI UI / ui-task (lint) (push) Has been skipped
CI UI / ui-task (pack-size) (push) Has been skipped
CI UI / ui-task (size) (push) Has been skipped
CI UI / ui-task (test) (push) Has been skipped
CI UI / ui-task (typecheck) (push) Has been skipped
CI Utils Test / utils-test (push) Has been skipped
CI Twenty Apps / ${{ matrix.app.name }} (push) Has been skipped
CI Emails / ci-emails-status-check (push) Successful in 2s
CI Example App Hello World / ci-example-app-hello-world-status-check (push) Successful in 2s
CI Example App Postcard / ci-example-app-postcard-status-check (push) Successful in 3s
CI UI / ui-sb-test (push) Has been skipped
CI Utils Test / ci-utils-test-status-check (push) Successful in 2s
CI Twenty Apps / ci-twenty-apps-status-check (push) Successful in 2s
CI UI / ci-ui-status-check (push) Successful in 2s
CI Desktop / desktop (push) Failing after 1m8s
Push docs to Crowdin / Push documentation to Crowdin (push) Failing after 55s
Push translations to Crowdin / Extract and upload translations (push) Failing after 5s
Push website translations to Crowdin / Extract and upload website translations (push) Failing after 5s
CI Create App / create-app-test (test) (push) Has been skipped
CI Create App / create-app-test (typecheck) (push) Has been skipped
CI Docs / docs-lint (push) Has been skipped
CI Example App Hello World / example-app-hello-world (push) Has been skipped
CI Front / front-task (lingui:extract) (push) Has been skipped
CI Front / front-task (test) (push) Has been skipped
CI Front / front-task (typecheck) (push) Has been skipped
CI UI / ui-sb-build (push) Failing after 1m32s
CI Twenty Apps / ${{ matrix.app.name }} (${{ matrix.server-source }}) (push) Has been skipped
CI Agent Skills / agent-skills-publish (push) Has been skipped
CI Create App / ci-create-app-status-check (push) Successful in 2s
CI Agent Skills / agent-skills-remote-source (push) Has been skipped
CI Create App E2E minimal / create-app-e2e-minimal (push) Has been cancelled
CI E2E Main / e2e-test (push) Has been cancelled
CI Front / front-sb-build (push) Has been cancelled
CI Front / front-build (push) Has been cancelled
CI Create App E2E minimal / ci-create-app-e2e-minimal-status-check (push) Has been cancelled
CI E2E Main / ci-e2e-main-status-check (push) Has been cancelled
CI E2E Main / notify-main-ci-failure (push) Has been cancelled
CI E2E Main / qa-scout-comment (push) Has been cancelled
CI Front / front-sb-test (push) Has been cancelled
CI Front / front-sb-screenshots (push) Has been cancelled
CI Front / ci-front-status-check (push) Has been cancelled
DPA Sub-Processor Sync / sync-subprocessors (push) Failing after 3s
AI Catalog Sync / sync-catalog (push) Failing after 2s
snapshot of https://github.com/twentyhq/twenty.git (main, 2026-09-17; blobs > 131072B omitted)
2026-09-17 23:28:13 +05:00

176 lines
7.4 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Çoktan-çoka İlişkiler Oluşturun
description: Her iki tarafta da çok sayıda öğenin birbirine bağlanabildiği kayıtları bağlantı nesneleriyle bağlayın.
---
Çoktan-çoka ilişkiler, her iki tarafta birden fazla kaydı bağlamanıza olanak tanır. Örneğin: Birçok kişi birçok projede çalışabilir ve her proje birçok kişiye sahip olabilir.
<Warning>
**Beta Özelliği**: Bağlantı ilişkileri şu anda beta aşamasındadır. Bu kılavuzu uygulamadan önce **Ayarlar → Topluluk → Özellikler** bölümünde bunları etkinleştirin.
</Warning>
<Note>
Bu özellik ayrıca **Gelişmiş mod**un etkinleştirilmesini gerektirir (Ayarlar'ın sol alt kısmındaki anahtarı kullanın).
</Note>
## Çoktan-çoka Ne Zaman Kullanılır
Bir ilişkinin her iki tarafında da birden fazla bağlantı olabiliyorsa çoktan-çoka ilişkileri kullanın:
| İlişki | Örnek |
| --------------------- | ----------------------------------------------------------------------------------------- |
| Kişiler ↔ Projeler | Bir kişi birden fazla projede çalışır; bir proje birden fazla ekip üyesine sahiptir |
| Şirketler ↔ Etiketler | Bir şirketin birden fazla etiketi olabilir; bir etiket birden fazla şirkete uygulanabilir |
| Ürünler ↔ Siparişler | Bir ürün birden fazla siparişte yer alabilir; bir sipariş birden fazla ürün içerir |
## Nasıl Çalışır
Twenty, çoktan-çoka ilişkiler için bir **bağlantı nesnesi** desenini kullanır. Bir bağlantı nesnesi iki nesnenin arasında yer alır ve bağlantıları tutar:
```
People ←→ Project Assignments ←→ Projects
```
**Project Assignments** nesnesi (bağlantı) şunlara sahiptir:
* People ile bir ilişki (çoktan-bire)
* Projects ile bir ilişki (çoktan-bire)
Bağlantı ilişkisi anahtarını etkinleştirdiğinizde, Twenty aradaki bağlantı kayıtlarını göstermeden bağlı kayıtları doğrudan görüntüler.
## Ön Gereksinimler
1. **Beta Özelliklerinde Bağlantı İlişkilerini Etkinleştirin**: **Ayarlar → Topluluk → Özellikler** bölümüne gidin ve **Junction Relations**'ı etkinleştirin
2. **Gelişmiş modu etkinleştirin**: Ayarlar kenar çubuğunun sol alt kısmındaki **Advanced mode** anahtarını açın
3. Veri modelinizi planlayın:
* Hangi iki nesneyi bağlıyorsunuz?
* Bağlantı nesnesinin adı ne olmalı?
## Adım 1: Bağlantı Nesnesini Oluşturun
Önce, bağlantıları tutacak ara nesneyi oluşturun.
1. **Ayarlar → Veri Modeli** bölümüne gidin
2. **+ Nesne Ekle**'ye tıklayın
3. Açıklayıcı bir ad verin (örn. "Project Assignment", "Team Member", "Product Order")
4. "Ad alanı oluşturmayı atla" seçeneğini açın
<img src="/images/user-guide/fields/new-pivot-object.png" alt="Yeni pivot nesnesi" />
5. **Kaydet**'e tıklayın
<Tip>
**Adlandırma kuralı**: "Project Assignment" veya "Team Membership" gibi ilişkiyi tanımlayan bir ad kullanın. Bu, veri modelinin anlaşılmasını kolaylaştırır.
</Tip>
## Adım 2: Nesneler ile Bağlantı nesnesi arasında ilişkiler oluşturun
İki nesnenizin her birinden bağlantı nesnesine ilişki alanları ekleyin.
### İlk İlişki (Nesne A → Bağlantı)
1. İlk nesnenizi **Ayarlar → Veri Modeli**'nde seçin
2. **+ İlişki Ekle**'ye tıklayın
3. Bağlantı nesnesini seçin (örn. "Project Assignments")
4. İlişki türünü **Birden-Çoğa** olarak ayarlayın (bir kişi birçok atamaya bağlanabilir)
5. Alanları adlandırın:
* People üzerindeki alan: örn. "Project Assignments"
* Bağlantı üzerindeki alan: örn. "Person"
6. **Kaydet**'e tıklayın
### İkinci İlişki (Nesne B → Bağlantı)
1. İkinci nesnenizi **Ayarlar → Veri Modeli**'nde seçin
2. **+ İlişki Ekle**'ye tıklayın
3. Bağlantı nesnesini seçin (örn. "Project Assignments")
4. İlişki türünü **Birden-Çoğa** olarak ayarlayın (bir proje birçok atamaya bağlanabilir)
5. **"Bu, bir bağlantı nesnesine kurulan bir ilişkidir"** seçeneğini etkinleştirin
<img src="/images/user-guide/fields/junction-relation-toggle.png" style={{width:'100%'}} />
6. Alanları adlandırın:
* Bağlantı üzerindeki alan: örn. "Project"
* Projects üzerindeki alan: örn. "Team Members"
7. **Kaydet**'e tıklayın
## Adım 3: Bağlantı İlişkisi Görüntüsünü Yapılandırın
Şimdi kaynak nesneleri, aradaki bağlantı nesnesini atlayıp bağlı kayıtları doğrudan gösterecek şekilde yapılandırın.
1. **Ayarlar → Veri Modeli** bölümüne gidin
2. İlk nesneyi seçin (örn. "People")
3. Bağlantı nesnesini işaret eden ilişki alanını bulun (örn. "Project Assignments")
4. Alanı düzenlemek için tıklayın
5. **"Bu, bir bağlantı nesnesine kurulan bir ilişkidir"** seçeneğini etkinleştirin
6. **Hedef ilişki**yi seçin (örn. "Project" — bağlantı üzerindeki, diğer tarafı işaret eden alan)
7. **Kaydet**'e tıklayın
## Sonuç
Yapılandırmadan sonra:
* Bir **Person** kaydında, "Project Assignments" alanı **Projects**'i doğrudan görüntüler (atama kayıtlarını değil)
* Bir **Project** kaydında, "Team Members" alanı **People**'ı doğrudan görüntüler
Bağlantı nesnesi hâlâ mevcuttur ve bağlantıları saklar, ancak kullanıcı arayüzü daha sade bir çoktan-çoka görünüm sunar.
## Örnek: Kişiler ↔ Projeler
İşte eksiksiz bir adım adım anlatım:
### Bağlantı Nesnesini Oluşturun
* Ad: **Project Assignment**
* Açıklama: "Kişileri üzerinde çalıştıkları projelere bağlar"
### İlişkiler Ekleyin
1. **People → Project Assignment**
* Tür: Birden-Çoğa
* People üzerindeki alan: "Project Assignments"
* Assignment üzerindeki alan: "Person"
2. **Projects → Project Assignment**
* Tür: Birden-Çoğa
* Projects üzerindeki alan: "Team Members"
* Assignment üzerindeki alan: "Project"
### Bağlantı Görüntüsünü Yapılandırın
1. **People** nesnesinde:
* "Project Assignments" alanını düzenleyin
* Bağlantı anahtarını etkinleştirin
* Hedef: "Project"
2. **Projects** nesnesinde:
* "Team Members" alanını düzenleyin
* Bağlantı anahtarını etkinleştirin
* Hedef: "Person"
### Kullanın
* Bir Person kaydını açın → Projelerini doğrudan görün
* Bir Project kaydını açın → Ekip üyelerini doğrudan görün
* Her iki taraftan da yeni bağlantılar oluşturun
## Bağlantılara Ek Veri Ekleme
Bağlantı nesnesi gerçek bir nesne olduğundan, ilişkiyle ilgili bilgileri saklamak için özel alanlar ekleyebilirsiniz:
* **Rol**: "Geliştirici", "Tasarımcı", "Yönetici"
* **Başlangıç Tarihi**: Kişinin projeye katıldığı tarih
* **Ayrılan Saatler**: Bu projedeki haftalık saat sayısı
Bu verilere erişmek için doğrudan bağlantı nesnesine gidin veya API aracılığıyla sorgulayın.
## Kısıtlamalar
* **CSV İçe/Dışa Aktarma**: Çoktan-çoka ilişkilerin doğrudan içe aktarımı desteklenmez. Bunun yerine kayıtları bağlantı nesnesine içe aktarın.
* **Filtreler**: Çoktan-çoka ilişkilere göre filtrelemenin seçenekleri sınırlı olabilir.
## İlgili
* [İlişki Alanları](/l/tr/user-guide/data-model/capabilities/relation-fields) — ilişki türlerinin açıklaması
* [Özel Nesneler Oluşturma](/l/tr/user-guide/data-model/how-tos/create-custom-objects) — nesneleri nasıl oluşturacağınız
* [İlişki Alanları Oluşturma](/l/tr/user-guide/data-model/how-tos/create-relation-fields) — temel ilişki kurulumu