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
149 lines
7.3 KiB
Plaintext
149 lines
7.3 KiB
Plaintext
---
|
||
title: Nesneler Arasındaki İlişkileri İçe Aktarma
|
||
description: Kayıtlar arasındaki ilişkileri CSV ile içe aktarın.
|
||
---
|
||
|
||
## Genel Bakış
|
||
|
||
Twenty, CSV içe aktarma sırasında nesneler arasındaki ilişkilerin içe aktarılmasını destekler. Bu, veri geçişinizin bir parçası olarak kayıtları birbirine bağlamanıza olanak tanır (ör. Kişileri Şirketlere iliştirme).
|
||
|
||
<Note>**Şu anda içe aktarma için desteklenenler**: Her iki tarafta da tek bir nesne türüne işaret eden bire-çok ilişkiler (ör. Kişiler → Şirketler). Birden fazla nesne türüne işaret eden ilişkiler henüz içe/dışa aktarma için desteklenmiyor.</Note>
|
||
|
||
## Twenty'de İlişkiler Nasıl Çalışır
|
||
|
||
### Bire-Çok / Çoktan-Bire
|
||
|
||
Twenty, bir kaydın birden çok başka kayda bağlandığı standart ilişkileri destekler:
|
||
|
||
* **Bir Şirket → Birçok Kişi**: Bir şirketin birden fazla çalışanı olabilir, ancak her kişi bir şirkete aittir
|
||
* **Bir Şirket → Birçok Fırsat**: Bir şirketin birden fazla fırsatı olabilir, ancak her fırsat bir şirkete aittir
|
||
|
||
### Birden Fazla Nesne Türüne İşaret Edebilen İlişkiler
|
||
|
||
Bazı ilişkiler farklı türdeki nesnelere bağlanabilir. Bu iki şekilde çalışır:
|
||
|
||
**Kalıp 1: Farklı nesne türlerinden birçok kayıt, her biri bir kayda bağlanır**
|
||
|
||
Birden çok Not veya Görevin her biri aynı anda birden fazla nesne türüne iliştirilebilir:
|
||
|
||
* **Notlar** aynı anda bir Kişiye, bir Şirkete ve bir Fırsata bağlanabilir
|
||
* **Görevler** aynı anda bir Kişiye, bir Şirkete ve bir Fırsata bağlanabilir
|
||
|
||
Burada, Notlar/Görevler "çok" tarafındadır. Her biri, her nesne türü için bir kayda bağlanır.
|
||
|
||
<img src="/images/user-guide/fields/many-to-one-morph.png" style={{width:'100%'}} />
|
||
|
||
**Kalıp 2: Farklı nesne türlerinden çok sayıda kayıttan bağlantı alan tek bir kayıt**
|
||
|
||
Bir Proje, farklı nesne türleri genelinde birden fazla kayıttan bağlantı alabilir:
|
||
|
||
* **Bir Proje** kendisine bağlı birçok Kişi, kendisine bağlı birçok Şirket ve kendisine iliştirilmiş birçok Not barındırabilir
|
||
|
||
Burada Proje, "bir" tarafındadır. Farklı nesnelerden birden çok kayıt aynı Projeye bağlanabilir.
|
||
|
||
<img src="/images/user-guide/fields/one-to-many-morph.png" style={{width:'100%'}} />
|
||
|
||
<Warning>
|
||
**İçe/Dışa Aktarma sınırlaması**: Birden fazla nesne türüne işaret eden ilişkiler (ör. Notlar → Kişiler/Şirketler/Fırsatlar) CSV içe aktarma veya dışa aktarmada **henüz desteklenmiyor**.
|
||
|
||
* **İçe aktarma**: Her iki tarafta da tek bir nesne türüne işaret eden bire-çok ilişkiler içe aktarılabilir
|
||
* **Dışa aktarma**: Birden fazla nesne türüne işaret eden ilişkilere ait sütunlar şu anda boş bırakılır
|
||
|
||
Bu özellik yol haritamızda.
|
||
</Warning>
|
||
|
||
### Bugün Neler Desteklenmiyor
|
||
|
||
**Çoktan-Çoka ilişkiler** henüz mevcut değil. Örneğin, şu anda aşağıdaki gibi bir ilişki oluşturamazsınız:
|
||
|
||
* Birçok Kişi birçok Projeye bağlıdır
|
||
|
||
<Note>Çoktan-Çoka ilişkiler 2026 H2 için planlanıyor.</Note>
|
||
|
||
## İçe Aktarma Sırasında Kayıtları Bağlama
|
||
|
||
<Note>**Hatırlatma**: Yalnızca her iki tarafta da tek bir nesne türüne işaret eden bire-çok ilişkiler içe aktarılabilir (ör. Kişiler → Şirketler). Birden fazla nesne türüne işaret eden ilişkiler (ör. Notlar → Kişiler/Şirketler/Fırsatlar) henüz desteklenmiyor.</Note>
|
||
|
||
### Adım 1: "Bir" ve "Çok" Tarafları Belirleyin
|
||
|
||
Önce, ilişkinin "bir" tarafında hangi nesnenin, "çok" tarafında hangi nesnenin olduğunu belirleyin.
|
||
|
||
**Örnek**:
|
||
|
||
* **Şirket** "bir" tarafıdır (bir şirketin birçok çalışanı vardır)
|
||
* **Kişiler** "çok" tarafıdır (her kişi bir şirkete aittir)
|
||
|
||
### Adım 2: "Bir" Tarafındaki Kayıtların Mevcut Olduğundan Emin Olun
|
||
|
||
"Çok" tarafını içe aktarmadan önce, "bir" tarafındaki kayıtlar Twenty'de zaten mevcut olmalıdır.
|
||
|
||
* Önce "bir" tarafındaki kayıtları içe aktarın veya oluşturun (ör. Şirketler)
|
||
* Benzersiz tanımlayıcılarını doğrulayın. Bu şu olabilir:
|
||
* `id` (Twenty'nin UUID'si)
|
||
* Benzersiz olarak ayarlanmış bir alan (ör. Şirketler için `domain` veya önceki sisteminizden bir dış kimlik)
|
||
|
||
<Warning>Var olmayan bir kayda referans verilirse içe aktarma başarısız olur.</Warning>
|
||
|
||
### Adım 3: CSV Dosyanızı Hazırlayın
|
||
|
||
"Çok" tarafındaki CSV dosyanıza, "bir" tarafındaki kayda referans veren bir sütun ekleyin.
|
||
|
||
**Örnek**: Şirketlere bağlanan bir Kişiler CSV dosyası için:
|
||
|
||
```
|
||
firstName,lastName,email,companyDomain
|
||
John,Smith,john@acme.com,https://acme.com
|
||
Jane,Doe,jane@widgets.co,https://widgets.co
|
||
```
|
||
|
||
**Önemli**:
|
||
|
||
* Değer, Şirket kaydındaki benzersiz alanla **tam olarak eşleşmelidir**
|
||
* Alan adları için **Alan Adı URL'si**ni (ör. `https://acme.com`) kullanın, Alan Adı Etiketini değil
|
||
* Her ilişki için yalnızca **bir** benzersiz tanımlayıcıyı eşleyin: bu, daha sorunsuz bir içe aktarma sağlar
|
||
|
||
### Adım 4: İlişki Alanının Mevcut Olduğundan Emin Olun
|
||
|
||
Dosyanızı yüklemeden önce, nesneleriniz arasında ilişki alanının mevcut olduğundan emin olun.
|
||
|
||
Eğer mevcut değilse:
|
||
|
||
1. **Ayarlar → Veri Modeli** bölümüne gidin
|
||
2. Nesnenizi seçin (ör. Kişiler)
|
||
3. Hedef nesneyi işaret eden bir ilişki alanı oluşturun (ör. Şirket)
|
||
|
||
### Adım 5: İlişkiyi Yükleyin ve Eşleyin
|
||
|
||
1. CSV dosyanızı içe aktarma arayüzü üzerinden yükleyin
|
||
2. Alan eşleme adımında, ilişki sütununuzu bulun (ör. `companyDomain`)
|
||
3. Bunu ilişki alanına eşleyin (ör. Şirket)
|
||
4. Twenty, her kaydı otomatik olarak eşleşen ana kayda bağlar
|
||
|
||
### İlişkiler İçin Kullanılabilir Benzersiz Alanlar
|
||
|
||
| Nesne | Kullanılabilir Benzersiz Alanlar |
|
||
| ----------------------------------- | ----------------------------------------------------- |
|
||
| **Şirketler** | `id`, `domain`, herhangi bir özel benzersiz alan |
|
||
| **Kişiler** | `id`, `email`, herhangi bir özel benzersiz alan |
|
||
| **İş Alanı Üyeleri** | `id`, `email` (isim değil) |
|
||
| **Diğer standart ve özel nesneler** | `id`, benzersiz olarak işaretlenmiş herhangi bir alan |
|
||
|
||
<Note>**Çalışma Alanı Üyelerine Bağlama**: İlişki Çalışma Alanı Üyelerini işaret ediyorsa (Twenty'ye giriş yapan ekibiniz), onlara adlarıyla değil, **e-posta adresleriyle** referans verin.</Note>
|
||
|
||
<Note>Tablolarda okunabilir ve bakımı kolay olduğundan, Şirketler için `domain` ve Kişiler için `email` kullanmanızı öneririz.</Note>
|
||
|
||
<Note>**Hatırlatma**: Yumuşak silinmiş kayıtlar (Komut Menüsü → Silinen kayıtları görüntüle altında görünür) benzersizlik ölçütlerine dahildir. Silinmiş bir kayıtla aynı benzersiz değere sahip bir kaydı içe aktarırsanız, silinmiş kayıt geri yüklenir. Daha fazla bilgi için [Benzersizlik Kısıtları](/l/tr/user-guide/data-migration/capabilities/uniqueness-constraints) bölümüne bakın.</Note>
|
||
|
||
## İçe Aktarma Sırası Kuralı
|
||
|
||
<Warning>
|
||
**Her zaman önce "bir" tarafı içe aktarın!**
|
||
|
||
1. Önce **Şirketler** (bağımlılık yok)
|
||
2. İkinci olarak **Kişiler** (Şirketlere bağlı)
|
||
3. Üçüncü olarak **Fırsatlar** (Şirketlere/Kişilere bağlı)
|
||
4. **Özel nesneler** (bağımlılıklarına uyarak)
|
||
|
||
Ona referans verebilmeden önce ana kayıt mevcut olmalıdır.
|
||
</Warning>
|