SORU
17 EYLÜL 2008, ÇARŞAMBA


'in ne yanlış yabancı anahtarlar ile mi?

Ancak hiç bir yabancı anahtar varsa (yanlış hatırlamıyorsam) kullanmış podcast 014 Joel Spolsky söz duyduğumu hatırlıyorum. Ancak, benim için çok önemli çoğaltılması ve sonraki veri bütünlük sorunları önlemek için veri tabanı boyunca görünüyorlar.

İnsanlar neden bazı sağlam nedenler (Taşma ilkeler Yığını hatlarında bir tartışma önlemek için) var mı?

Düzenleme:"I've yet to have a reason to create a foreign key, so this might be my first reason to actually set up one."

CEVAP
17 EYLÜL 2008, ÇARŞAMBA


Sebep Yabancı Anahtarları kullanmak için:

  • Artık Satır bulamazsın
  • "delete cascade", otomatik olarak tabloları temizlik davranış . güzel alabilirsiniz
  • veritabanında tablolar arasındaki ilişkiler hakkında bilmek katıl daha iyi tahminler elde etmek mümkün önem olduğu için Doktoru planın en verimli yürütülmesi için sorularınıza yardımcı olur.
  • Sayılı istatistik sırayla daha iyi performans yol açar veritabanı üzerinde toplamak için en önemli şey çok büyük bir ipucu veriyorum
  • otomatik olarak oluşturulan destek ORMs kendilerini üretebilir her türlü sağlar, görselleştirme araçları, vb için güzel bir şema düzenleri oluşturmak mümkün olacak
  • biri proje için yeni aksi takdirde örtülü ilişkiler açıkça belgelenmiştir beri olayların akışı daha hızlı olacaktır

Sebep Yabancı Anahtarları kullanmak için:

  • DB FK tutarlılık kontrol etmek için vardır, çünkü fazladan her bir CRUD işlemi üzerinde çalışma yapıyoruz. Bu ise yayık bir sürü varsa, büyük bir mal olabilir
  • ilişkileri zorlayarak, Sayılı istediğini yapmak için DB tarafından reddediş yol açabilir şeyleri silmek, eklemek için bir düzen belirleyin. Senin yapmaya çalıştığın ne (kabul ediyorum, bu gibi durumlarda, genellikle iyi bir şey değildir Artık bir Satır, ve oluşturmak). Bu özellikle acı ne zaman yapıyorsun büyük toplu güncelleştirmeler ve poşetini bir tablo daha önce başka bir ile ikinci tablo oluşturma tutarlı devlet (ama ne yapıyor öyle şeyler olur Ya, bir ihtimal ikinci yükleme başarısız olur ve veritabanı tutarsız şimdi?).
  • bazen önceden verilerinizi kirli olacak biliyorsun, bunu kabul etmek ve DB bunu kabul etmek istiyorum
  • tembel :-)

(Emin değilim!) bence en köklü veritabanları değil zorlanan yabancı anahtar belirtmek için bir yol sağlar, ve sadece meta bir parçasıdır. Olmayan zorlama Sayılı kullanmamak için her türlü sebep mendil beri, muhtemelen ikinci bölümünde nedenlerden geçerli eğer bu yolu gitmek gerekir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Associated Press

    Associated P

    18 EYLÜL 2006
  • Fuse

    Fuse

    21 Kasım 2005
  • Thehalopianoplayer

    Thehalopiano

    4 ŞUBAT 2011