Merhaba arkadaşlar, Constraint'in türkçe karşılığı kısıtlayıcı demektir. Yani bir tablodaki sütun veya sütunların içerdiği verileri ilişkilendirilen başka bir tablaya ait sütun veya sütunlarla kısıtlamamızı sağlar. Örneğin Ürünlerimizi bir tabloda Kategorilerimizi bir tablada tuttuğumuz zaman Ürünler kategorisindeki Kategori ID ile Kategoriler tablosundaki Kategori ID'yi ilişkilendiririz böylece ürün eklerken sadece kategori tablomuzda olan kategorilerle ürünümüzü ilişkilendirebiliriz buda bize veri bütünlüğü sağlar. Örneğin ürünler tablomuzla kategoriler tablomuz arasında bir ilişki kuralım, SQL sorgumuz şu şekilde olacaktır;
ALTER TABLE Products --İşlem yapacağımız tablo ADD FOREIGN KEY (CategoryID) --Tablodaki ForeingKey ekleyeceğimiz alan REFERENCES Categories(CategoryID) --İlişki kuracağımız tablo ve tablodaki ilgili alan
Yukarıdaki örnekde Products tablosunda ki CategoryID ile Categories tablosundaki CategoryID arasında ilişki kurduk böylelikle ürün eklerken kategoriler tablosundaki kategoriler dışında hiç bir veri ile ürünümüzün kategorisini ilişkilendiremeyeceğiz.
Datebase Diagrams ile ForeingKey Oluşturma
Object Explorer'dan tablomuzun içeriğini açıp Database Diagrams'a sağ tıklayıp New Database Diagram'ı tıklıyoruz.
onra açılan pencerede ilişki kuracağımız tabloları seçip Add'i tıklıyoruz.
Categories ile Products tablosunu seçip Add'i tıkladıktan sonra tablolarımız ekrana geliyor.
*Tüm tablolarıda seçebiliriz ama ben dersi sadeleştirmek adına sadece ilişki kuracağımız tabloları seçiyorum. Ek olarak veritabanınızda hali hazırda bir diagram varsa bu işlemleri yapmanıza gerek yok. Mevcut diagramınız üzerinden de devam edebilirsiniz.
Sonra Categories tablosundaki CategoryID'ye basılı tutup Products tablosundaki CategoryID'ye sürüklüyoruz. Sonra karşımıza aşağıdaki gibi bir işlem penceresi çıkıyor. Bu pencerede OK 'a tıklıyoruz.
Böylelikle Database Diagrams'dan ForeingKey tanımlamış olduk
.
Bu yazıda Foreing Key'in amacını ve kullanımını anlatmaya çalıştım, umarım faydalı olmuştur. Bir sonraki yazımda görüşmek üzere.