Wir erweitern unser Datenmodell ein wenig  um das Problem Synthetische Schlüssel ein wenig näher zu beleuchten:

Mitarbeiter:

MAID Name Vorname
1 Müller Anton
2 Schmidt Petra
..

Vorgänge:

VID MAID Status RID
1 1 0 1
2 2 1 2
.. ..  

Referenzen:

RID Referenz Status
1 EF0001 open
2 TE1203 closed
..

Load Script

Mitarbeiter:
SQL Select 
  MAID
  ,Name
  ,Vorname
From Mitarbeiter;

Vorgänge:
SQL Select 
  VID
  ,MAID
  ,Status
  ,RID
From Vorgänge;

Referenzen:
SQL Select 
  RID
  ,Referenz
  ,Status
From Referenzen;

 

Skriptlog Warnung

 

Das Ergebnis in der Tabellenansicht

Qlik Ansicht Datenbankansicht
   

Da Qlik immer nur eine Verbindung zwischen den Tabellen will, löst Qlik das Problem in dem es aus den beiden Feldern einen sogenannten Synthetischen Schlüssel erstellt und diesen über eine Zuordnungstabelle „$Syn1 Table“ verknüpft (Qlik Ansicht). Die Farbe gelb im Skriptlog zeigt uns an das es sich hierbei um eine Warnung handelt, was bedeutet das ihre Daten an der Oberfläche noch korrekt dargestellt werden. Sie müssen diese Fehler also nicht zwingend beseitigen.

Allerdings sind Synthetische Schlüssel echte Performance Killer, da die Schlüssel und Zuordnungstabellen mit jedem Filterwechsel an der Oberfläche neu erstellt werden.

Synthetische Schlüssel sollten in jedem Fall beseitigt werden. Es sei denn Sie benutzen die Applikation alleine.

Synthetische Schlüssel lösen

Um dieses Problem zu lösen müssen wir die Gleichnamigkeit des Feldes Status ändern, damit die Tabelle Referenzen nur noch über das Feld RID mit unserer Tabelle verknüpft wird. Da in diesem Fall der Status der Vorgänge nichts mit dem Status der Referenz zu tun hat.

Mitarbeiter:
SQL Select 
  MAID
  ,Name
  ,Vorname
From Mitarbeiter;

Vorgänge:
SQL Select 
  VID
  ,MAID
  ,Status
  ,RID
From Vorgänge;

Referenzen:
SQL Select 
  RID
  ,Referenz
  ,Status As ReferenzStatus
From Referenzen;

 

Das Ergebnis in der Tabellenansicht

Kommen wir nun zum nächsten Problem welches beim Daten verknüpfen auftreten kann, den Zirkelbezügen.