複合キーの設定方法
先に説明したようにプリザンターでは複合キーの概念がないため、たとえば取引先ごとに仕入れる商品のコードを一意にしたい(別々の取引先から同じ商品を仕入れる)ときなどに使えると思います。
この場合は以下のような設定を行い、疑似的に複合キーとして扱います。
[取引先名] → 分類A(取引先一覧をリンク)
[商品コード] → 分類B(商品マスタをリンク)
[取引先-商品コード] → 分類C「重複禁止」チェックON
なお、下記のスクリプトで「分類A + 分類B」を「分類C」に自動入力するように設定します。
スクリプトの出力先は「新規作成」「編集」を設定します。
$(document).on('change', '#Results_ClassA, #Results_ClassB', function () {
var A = $('#Results_ClassA').val();
var B = $('#Results_ClassB').val();
$p.set($('#Results_ClassC'), A + B);
//2024/8/8追記
//ClassAとBのIDを直接結合すると、12+3456 と 123+456 のように、本来は別の物が同じ物として扱われてしまう
//このような場合は、下記のように間に区切り文字などを入れ回避する
//$p.set($('#Results_ClassC'), A + '_' + B);
})
さらに、バージョン1.3.10から機能追加された「重複禁止時のメッセージ」を使用することで、利用者が重複禁止に対して何が問題なのかが理解できるようになります。
ここでは「重複禁止時のメッセージ」に「取引先 と 商品コード の組み合わせが既に存在します。登録情報を確認してください。」と入力しておきましょう。
1)新規登録します。
2)取引先は1と「同じ」で、1と「異なる」商品コードの登録は問題ありません。
3)取引先も商品コードも1と「同じ」場合には、設定した重複禁止のメッセージが表示されます。
まとめ
さて、いかがでしたか?
複合キーというあまり聞きなれない言葉だったかもしれませんが、内容を聞けば理解できた方も多いかと思います。単純に1つの重複禁止(一意)では解決しないような場合は、一度お試しください。
導入の支援や、スクリプト開発などでお困りの場合は、当社で支援もいたします。
こちらは無料ではなく、有料になりますのでご了承ください。
☆☆ブログ内容への質問や追加説明をご希望の方は
【問い合わせフォーム】 こちら からお気軽にお問い合わせください☆☆
プリザンターのキー制限
こんにちは、シーイーシーカスタマサービスの森山です。
プリザンターでは項目の設定で「重複禁止」の設定があります。データベースに詳しい方であれば、プライマリキーまたは主キーにあたることがわかるかと思います。
実際は、プリザンターはレコードIDを持っていてそれが主キーになっているのですが、テーブル上で一意にしたい場合に「重複禁止」を使います。
このキーが1つであれば問題ないのですが、複数の組み合わせで一意になっているもの(データベースでいう複合キー)を設定したいときに、プリザンターではその機能を持っていないので困ってしまいます。
そんな時の解決策を説明します。