Foreign Key Nedir? İlişkisel Veritabanlarında Kullanımı
Foreign key, ilişkisel veritabanlarında bir tablodaki kaydın başka bir tablodaki kayıtla bağlantısını kuran yapıdır. Bu bağlantı sayesinde tablolar arasında veri bütünlüğü korunur ve anlamsız kayıtların oluşması engellenir.
Örneğin BlogPosts tablosunda CategoryId alanı varsa bu alan Categories tablosundaki Id değerine bağlanabilir. Böylece olmayan bir kategoriye ait blog yazısı eklenmesi engellenir. Bu yapı veritabanı tutarlılığı açısından oldukça önemlidir.
Foreign key ilişkilerinde silme davranışı da dikkatle tasarlanmalıdır. Cascade delete kullanılırsa ana kayıt silindiğinde bağlı kayıtlar da otomatik silinir. Restrict kullanılırsa bağlı kayıt varken ana kaydın silinmesine izin verilmez.
CMS tarzı projelerde Category ile BlogPost arasında genellikle Restrict tercih edilir. Çünkü bir kategori silindiğinde tüm blog yazılarının yanlışlıkla silinmesi istenmez. Ancak BlogPost ile BlogPostTranslation arasında Cascade mantıklı olabilir; çünkü çeviri kaydı ana blog yazısı olmadan anlamlı değildir.
0 Yorumlar