Özyinelemeli ilişki veya kendi kendine birleşme olarak da bilinen kendine referans veren bir ilişki, ilişkisel veritabanları bağlamında, bir tablo aynı tablonun birincil anahtarına geri başvuran bir yabancı anahtar içerdiğinde ortaya çıkar. Bu tür bir ilişki, hiyerarşik veri yapıları, organizasyon şemaları ve bir varlığın kendisiyle doğrudan veya dolaylı olarak ilişkili olduğu ebeveyn-çocuk bağımlılıkları gibi çeşitli gerçek dünya senaryolarında yaygındır. Kendine referans veren bir ilişkinin uygulanması, ilişkisel veritabanı tasarım ilkelerinin derinlemesine anlaşılmasını ve kısıtlamaların ve referans bütünlüğü kurallarının etkili kullanımını gerektirir.
Örneğin, bir şirketin veritabanındaki her çalışan, departmanı, iş unvanı ve diğer ilgili veriler hakkındaki bilgileri saklayan bir Çalışan tablosunu düşünün. Örgütsel hiyerarşinin en önemli yönlerinden biri yönetici-ast ilişkisidir. Yöneticiler için ayrı bir tablo oluşturmak yerine, Çalışan_ID birincil anahtar sütununa geri başvuran bir Manager_ID yabancı anahtar sütunu eklenerek Çalışan tablosu içinde kendine referanslı bir ilişki kurulabilir. Bu durumda, yönetici olan çalışanların Yönetici_Kimliği olarak kendi Çalışan_Kimliği vardır ve bir yöneticiye rapor veren çalışanların Yönetici_Kimliği olarak ilgili yöneticinin Çalışan_Kimliği vardır.
PostgreSQL gibi ilişkisel bir veritabanı yönetim sisteminde (RDBMS) kendine referans veren bir ilişki oluşturmak, tablo şeması içindeki birincil anahtar ve yabancı anahtar sütunlarının tanımlanmasını ve referans bütünlüğünü korumak için uygun kısıtlamaların ve kuralların ayarlanmasını içerir. Çalışan tablosu örneğinde, tablo şemasını oluşturmak ve kendine referans veren ilişki kurmak için aşağıdaki SQL ifadeleri kullanılabilir:
TABLO OLUŞTUR Çalışan ( Çalışan_ID INT BİRİNCİL ANAHTARI, Ad_VARCHAR(50), Soyadı VARCHAR(50), Bölüm VARCHAR(50), Manager_ID INT, CONSTRAINT fk_Manager YABANCI ANAHTAR (Yönetici_ID) REFERANSLAR Çalışan (Employee_ID) );
Kendine referans veren ilişkilerle çalışırken referans bütünlüğünü korumanın önemini anlamak çok önemlidir. Bu, ON DELETE ve ON UPDATE yan tümceleri için uygun CASCADE, SET NULL veya SET DEFAULT kurallarının ayarlanmasını içerir. Bu kurallar, bir birincil anahtar değeri güncellendiğinde veya silindiğinde gerçekleştirilecek eylemleri belirtir.
Örnek olarak, bir yöneticinin Çalışan_ID'sinin değiştiği veya bir yöneticinin Çalışan tablosundan kaldırıldığı bir senaryoyu düşünün. Bilgi bütünlüğünü korumak için, yeni Manager_ID değerlerinin etkilenen astlar için uygun şekilde ayarlanmasını sağlarken, ON DELETE yan tümcesi için SET NULL veya SET DEFAULT kuralları kullanılabilir. Benzer şekilde, bir yöneticinin Employee_ID'si değiştiğinde ilgili tüm astların Manager_ID değerini otomatik olarak güncellemek amacıyla ON UPDATE cümleciği için CASCADE kuralı kullanılabilir.
Güçlü no-code platform olan AppMaster kullanıcılar, arka uç uygulamaları tasarlarken veri modellerinde görsel olarak kendine referans veren ilişkiler oluşturabilirler. Platform, kullanıcıların birincil anahtar ve yabancı anahtar sütunlarını tanımlamasına, kısıtlamaları ve referans bütünlüğü kurallarını belirlemesine ve veritabanı şemasını görsel olarak yönetmesine olanak tanır. AppMaster sezgisel arayüzü, ister organizasyonel bir hiyerarşi, ister çok seviyeli bir ürün sınıflandırma sistemi veya kendine referans veren ilişkileri içeren herhangi bir başka senaryo olsun, kullanıcıların uygulamalarında karmaşık özyinelemeli ilişkiler oluşturmasını ve yönetmesini kolaylaştırır.
AppMaster, oluşturulan Go tabanlı arka uç uygulamalarına kendi kendine referans veren ilişkileri entegre ederek kurumsal ve yüksek yüklü kullanım durumlarını ele almada ölçeklenebilirlik ve performans sağlar. Ayrıca platform, gereksinimler değiştiğinde uygulamaları sorunsuz bir şekilde sıfırdan yeniden oluşturarak teknik borcu ortadan kaldırır ve geliştirme sürecini kolaylaştırır.
Kapsamlı bir entegre geliştirme ortamı (IDE) olarak AppMaster, kullanıcıların karmaşık veri yapılarını ve kendine referans veren ilişkiler gibi ilişkileri birleştiren sağlam ve ölçeklenebilir web, mobil ve arka uç uygulamalarını tasarlamasına, oluşturmasına ve dağıtmasına olanak tanır. Kullanıcılar, AppMaster kapsamlı yeteneklerini kullanarak, çeşitli iş ihtiyaçlarını karşılayan uygulamaları hızlı bir şekilde geliştirip dağıtabilir, böylece süreci 10 kat daha hızlı ve 3 kat daha uygun maliyetli hale getirebilirler.