合成キー
複数の内部テーブル間に複数の項目が共通して含まれている場合、複合キーの関係が存在することを意味します。QlikView は、自動的に合成キーを作成し、これに対処しています。合成キーとは、複合キーが発生するすべての組み合わせを表す匿名項目です。
データのロード中に、合成キーに関する警告が表示された場合は、テーブル ビューアでデータ構造を確認することをお勧めします。データ モデルが正しいかどうかを、自分で確認してください。データ モデルが正しくても、合成キーが多すぎるとスクリプトでエラーが発生する原因となります。
必ずというわけではありませんが、複数の合成キーが不正なデータ モデルの兆候となることはよくあります。ですが、他の合成キーに基づく合成キーがある場合、これは不正なデータ モデルの明らかな兆候です。
合成キーの処理
合成キーを回避する必要がある場合は、ロード スクリプトで次のような方法を使って解決できます。
-
キーとして使用されている論理的にリンクしている 2 つのテーブルの項目のみをチェックする。
- “Comment” や “Remark”、“Description” のような項目が互いに関係のない複数のテーブルに存在する場合、キーとして使用できない。
- “Date” や “Company”、“Name” のような項目が複数のテーブルに存在し、一意の値を持っているがロールが異なる場合 (Order Date/Shipping Date、Customer Company/Supplier Company) は、キーとして使用できない。
-
冗長項目が使用されておらず、必要な項目のみが接続されていることを確認する。たとえば、日付をキーとして使用する場合は、year、month、または day_of_month などを複数の内部テーブルから同じ日付がロードされていないことを確認してください。
-
必要に応じて、通常は AutoNumber スクリプト関数内で文字列連結を使用している独自の非複合キーを作成する。