Arama tabloları (veya bazılarının dediği gibi kod tabloları ) genellikle belirli bir sütun için verilebilecek olası değerlerin toplamıdır.
Örneğin party
, iki sütunu olan (siyasi partiler hakkında bilgi depolamak için) adlı bir arama tablonuz olduğunu varsayalım :
party_code_idn
, sistem tarafından oluşturulan sayısal değerleri tutar ve ( iş alanı anlamından yoksundur ) gerçek anahtar için bir vekil olarak çalışır.party_code
, iş alanı çağrışımları olan değerleri koruduğu için tablonun gerçek veya "doğal" anahtarıdır .
Ve böyle bir tablonun aşağıdaki verileri sakladığını söyleyelim:
+----------------+------------+
| party_code_idn | party_code |
+----------------+------------+
| 1 | Republican |
| 2 | Democratic |
+----------------+------------+
party_code
Değerler 'Cumhuriyet' ve 'Demokratik', tablonun gerçek tuşu olan UNIQUE sınırlamasıyla kurulur, ama isteğe bağlı olarak ilave tutar sütun, party_code_idn
ve olsa masanın (bir PK olarak tanımlanan mantıksal konuşma , party_code
PRIMARY KEY [PK]) olarak çalışabilir.
Soru
İşlem tablolarından arama değerlerine işaret etmenin en iyi uygulamaları nelerdir ? YABANCI ANAHTAR (FK) ya (a) doğrudan doğal ve anlamlı değere ya da (b) değerleri aşmak için referanslar oluşturmalı mıyım ?
Seçenek (a) , örneğin,
+---------------+------------+---------+
| candidate_idn | party_code | city |
+---------------+------------+---------+
| 1 | Democratic | Alaska |
| 2 | Republican | Memphis |
+---------------+------------+---------+
aşağıdaki özelliklere sahiptir 1 :
- Son kullanıcı için okunabilir (+)
- Sistemler arasında kolay ithalat-ihracat (+)
- Tüm referans tablolarında değişiklik yapılması gerektiğinden değeri değiştirmek zor (-)
- Yeni değer eklemek pahalı değildir (=)
Uygulama programlama jargonunda fonksiyon çağrısından bir benzetme yapmak neredeyse “ değere göre geç ” gibi bir şey .
Seçenek (b) , örneğin,
+---------------+----------------+---------+
| candidate_idn | party_code_idn | city |
+---------------+----------------+---------+
| 1 | 1 | Alaska |
| 2 | 2 | Memphis |
+---------------+----------------+---------+
aşağıdaki özelliklere sahiptir:
- Son kullanıcı için okunamıyor (-)
- İhtiyaç duymamamız gerektiğinden ithalat-ihracat yapmak zor (-)
- Yalnızca işlem tablolarında referansları depoladığımız için değerleri değiştirmek kolaydır (+)
- Yeni değer eklemek pahalı değildir (=)
Uygulama programlama bölümünde fonksiyon çağrısı ile karşılaştırıldığında " referans ile geç " e çok benzer .
İthalat-İhracat da farklı bir şekilde yapılabilir, yani sadece arama tablosunu tekrar doldurarak ve sonra vekil sütunu yeniden tohumlayabilirsiniz. Umarım bunu doğru anlıyorum, bu bir olasılık olarak duyduğum bir şey.
1. Not olduğunu +
, -
ve =
bu özelliklerin yararını göstermektedir.
Soru
Oldukça önemli: Eğer ikinci yaklaşımı kullanacaksak, bir arama (veya kod ) tablosu ile FK referansı arasında bir fark var mıdır ? Bence aynı şekilde çalışıyorlar.