SORU
3 Aralık 2008, ÇARŞAMBA


Ne'tablolar, birincil anahtarlar için en iyi yöntem?

Tabloları tasarlarken, birincil anahtar yapmak eşsiz ve bir sütun olan bir alışkanlık geliştirdim. Bu gereksinimlerine bağlı olarak üç şekilde yapılır

  1. Kimlik tamsayı sütun otomatik olarak artırır.
  2. Benzersiz tanımlayıcı (GUID)
  3. Karakter(x) veya tamsayı (ya da görece küçük bir sayısal tür diğer) kısa bir sütun satır sütun tanımlayıcısı olarak hizmet verebilir

3 oldukça küçük arama için kullanılacak numarayı, çoğunlukla benzersiz statik uzunluğu dize bir kod, ya da sayısal bir değer olabileceğini tablo okuma yıl veya başka bir sayı gibi.

Çoğunlukla, tüm diğer tabloları da otomatik artan integer veya benzersiz tanımlayıcı birincil anahtar olacak.

:- Soru)

Son zamanlarda hiçbir tutarlı satır tanımlayıcısı olan veritabanları ile çalışmaya başladı ve ben birincil anahtarlar şu anda çeşitli sütunlar boyunca kümelenmiş. Bazı örnekler:

  • datetime/karakter
  • /integer datetime
  • /varchar datetime
  • char/nvarchar/nvarchar

Bunun için geçerli bir durum var mı? Her zaman bu durumlar için kimlik ya da benzersiz bir tanımlayıcı sütun tanımlı olurdu.

Buna ek olarak, tüm birincil anahtarlar olmadan pek çok tablo var. Geçerli bir nedenleri varsa, bu ne için?

Tablo gibi tasarlanmış, ve bana büyük bir karmaşa gibi görünüyor neden anlamaya çalışıyorum, ama belki de bunun için iyi nedenleri vardı.

EDİT

TAMAM... Vay be! Büyük tepkiler ve bir çok tartışma. Dini biraz farkında olmadan bir konuya denk geldim sanırım. :-)

Bir üçüncü soru için bir nevi yardım beni deşifre cevaplar: durumlarda birden çok sütun için kullanılır oluşturan bileşik birincil anahtar, bir özel çıkarları için bu yöntemi vs taşıyıcı anne/yapay anahtar? Performans, bakım, yönetim açısından, vb. çoğunlukla düşünüyorum?

2 DÜZENLEYİN

Orada çok iyi cevaplar burada, zor tercih "en iyi" biri, bana da öyle seçilmiş kişi olduğunu düşündüm yararlı, ama alamamış gibi çok oyu ve oy Diğerleri yardımcı soruma cevap ver.

CEVAP
3 Aralık 2008, ÇARŞAMBA


Birkaç kural takip ediyorum:

  1. Birincil anahtar gerekli olduğu kadar küçük olmalıdır. Sayısal türler karakter biçimleri çok daha kompakt bir biçimde saklanır çünkü sayısal bir tür tercih. Bu en birincil anahtar başka bir tablodaki yabancı anahtar olarak birden çok dizin kullanılır. Anahtar, küçük dizin daha küçük, daha az kullanacaksınız önbelleğinde sayfalar.
  2. Birincil anahtarlar hiçbir zaman değiştirmeniz gerekir. Birincil anahtar güncelleme her zaman söz konusu olmalıdır. Bu çoklu indeksler ve yabancı anahtar olarak kullanılan olması muhtemeldir olmasıdır. Tek bir birincil anahtar güncelleştirme değişiklikleri dalgalanma etkisi yaratabilir.
  3. "Mantık modeli birincil anahtar olarak. "sorun, birincil anahtar kullanmayın Örneğin pasaport numarası, bu sosyal güvenlik numarası, ya da çalışanların sözleşme numarası "birincil anahtar" gerçek dünya durumlar için değiştirin.

Yedek anahtar vs doğal, yukarıdaki kurallar bakın. Doğal anahtarı küçük ve asla değişmeyecek eğer birincil anahtar olarak kullanılabilir. Eğer doğal tuşuna ya da değiştirmek için büyük olasılıkla ise yedek anahtarları kullanıyorum. Eğer birincil anahtar yok ben yine de deneyim her zaman şeması tablo eklemek ve birincil anahtar koymak isterdim olursunuz, çünkü bir yedek anahtar.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Anthony Le

    Anthony Le

    10 EKİM 2006
  • ETrade Supply

    ETrade Suppl

    23 Temmuz 2011
  • karneson

    karneson

    23 Temmuz 2006