Yabancı anahtar kısıtlamasını 0 olarak ayarlamak iyi bir fikir değildir, çünkü bunu yaparsanız veritabanınız referans bütünlüğünü ihlal etmediğinden emin olmaz. Bu, yanlış, yanıltıcı veya eksik verilere yol açabilir.
Bir nedenle yabancı anahtar yaparsınız: çünkü alt sütundaki tüm değerler üst sütundaki bir değerle aynı olacaktır. Yabancı anahtar kısıtlaması yoksa, bir alt satırın üst satırda olmayan ve yanlış verilere yol açacak bir değeri olabilir.
Örneğin, öğrencilerin giriş yapabileceği bir web siteniz olduğunu ve her öğrencinin bir hesap için kullanıcı olarak kaydolması gerektiğini varsayalım. Kullanıcı kimlikleri için birincil anahtar olarak kullanıcı kimliğine sahip bir tablonuz var; ve öğrenci kimliği için sütun olarak öğrenci kimliğine sahip başka bir tablo. Her öğrencinin bir kullanıcı kimliği olması gerektiğinden, öğrenci hesapları tablosundaki öğrenci kimliğini, kullanıcı kimlikleri tablosundaki birincil anahtar kullanıcı kimliğine başvuran yabancı bir anahtar yapmak mantıklı olacaktır. Yabancı anahtar kontrolü yoksa, öğrenci öğrenci kimliği ve kullanıcı kimliği içermeyebilir, bu da öğrencinin kullanıcı olmadan hesap alabileceği anlamına gelir, bu yanlıştır.
Büyük miktarda veriye gelip gelmediğini düşünün. Bu yüzden yabancı anahtar kontrolüne ihtiyacınız var.
Hataya neyin neden olduğunu bulmak en iyisidir. Büyük olasılıkla, bir alt satırdan silmeden bir üst satırdan silmeye çalışıyorsunuz. Üst satırdan silmeden önce alt satırdan silmeyi deneyin.