Yapay anahtarlar

İki veya daha fazla dahili tablonun iki veya daha fazla ortak alana sahip olması, bir bileşik anahtar ilişkisine işaret eder. QlikView bu durumu, otomatik olarak yapay anahtarlar oluşturmak suretiyle yönetir. Bu anahtarlar, bileşik anahtarın tüm oluşan bileşimlerini temsil eden anonim alanlardır.

Verileri yüklerken yapay anahtarlar ile ilgili bir uyarı alırsanız, tablo görünümünde veri yapısını gözden geçirmeniz önerilir. Kendinize veri modelinin doğru olup olmadığını sormalısınız. Bazen doğrudur, ancak çoğu zaman yapay anahtar koddaki bir hata nedeniyle orada bulunmaktadır.

Çok sayıda yapay anahtar genellikle yanlış bir veri modelinin belirtisidir (ancak olmayabilir de). Bununla birlikte, diğer yapay anahtarları temel alan yapay anahtarlarınız olması, yanlış veri modeline dair kesin bir belirtidir.

Warning: Yapay anahtarların sayısı arttığında veri miktarlarına, tablo yapısına ve diğer faktörlere bağlı olarak QlikView bunları incelikle işleyebilir ya da işleyemeyebilir ve sonuçta aşırı miktarda zaman ve/veya bellek kullanılabilir. Böyle bir durumda tüm yapay anahtarları kaldırarak kodunuz üzerinde yeniden çalışmanız gerekir.

Yapay anahtarları işleme

Yapay anahtarlardan kaçınmanız gerekiyorsa, kod dosyasında bu sorunu çözmenin bazı yolları vardır:

  • Anahtar olarak yalnızca, iki tabloyu mantıksal olarak ilişkilendiren alanların kullanıldığını kontrol edin.

    • "Yorum", "Not" ve "Açıklama" gibi alanlar ilişkili olmaksızın birkaç tabloda var olabilir ve bu nedenle anahtar olarak kullanılmamalıdırlar.
    • "Tarih", "Şirket" ve "Ad" gibi alanlar birkaç tabloda var olabilir ve aynı değerlere sahip olmasına karşın rolleri farklı olabilir (Sipariş Tarihi / Gönderme Tarihi, Müşteri Şirketi / Tedarikçi Şirketi). Böyle durumlarda anahtar olarak kullanılmamalıdırlar.
  • Gereksiz alanların kullanılmadığından ve yalnızca gerekli alanların bağlandığından emin olun. Örneğin anahtar olarak bir tarih kullanılıyorsa, year, month veya day_of_month gibi öğelerin birden fazla dahili tablodan yüklenmediğinden emin olun.

  • Gerekirse, tipik olarak bir AutoNumber kod fonksiyonu içinde dize birleştirmeyi kullanarak, kendi bileşik olmayan anahtarlarınızı oluşturun.