ja | en

モデルには必ず1つ以上の主キー項目を用意してください。「主キー」とはデータを一意に識別させるもので、重複のない値のことです。

主キーとして用いる項目の右側にある「詳細」ボタンを押下します。

図1 詳細定義へ

「主キーとして利用する」にチェックが入っている場合、この項目は主キーになります。 さらに「主キーの詳細」欄で、「順序を利用する」にチェックが入っている場合、開始番号からユニークな番号が自動的に割り当てられるようになります。

図2 主キーの設定

このウィンドウの下部に用意されている「OK」ボタンを押下して(ウィンドウを)閉じます。

主キー指定された項目は、モデル項目一覧で鍵のアイコンが表示されます。

図3 鍵アイコンが表示される

1つの項目だけでデータが一意に識別できるものを「単一キー」といいます。

人工キー

整数型の項目を主キーに指定した場合、データの新規登録時に既存データの主キーと値が重複しないようにシステム側で連番を振ることができます。これを「人工キー(または代理キー)」と呼びます。

自然キー

データの特性を活かした主キーを「自然キー」と呼びます。社員番号や品番といった業務特性上、重複しない値を主キーとして用いる場合です。

複数の項目を組み合わせてデータが一意に識別できるものを「複合キー」といいます。 複数の自然キーを組み合わせる、または自然キーと人工キーを組み合わせるといった方法があります。

主キーに人工キー(代理キー)を適用した場合でも、欠番が生じる場合があります。具体的には次のような場合です。

  • 何らかの理由で登録処理がデータベース側でエラーとなった。
  • そのデータを削除した。

データベースではいくつかの順序をあらかじめメモリに保持しておくことで採番のパフォーマンスを上げるものがありますが、メモリに保持していた番号を消去することがあります。結果として飛び番号が生じます。

データベースの順序を利用しても欠番や飛び番が発生することがあります。詳細は、利用するデータベースに精通した技術者へご相談ください。
  • 一度保存された主キーの値を変更することはできません。
  • 「主キーとして利用する」設定がチェックされた場合、必須チェックが自動的に有効かつ変更不可となります。
  • 日付型項目を主キーとしたとき、日付の書式は "yyyy-MM-dd" のみが許容されます。他の書式は指摘できません。
  • 時刻型項目を主キーとしたとき、時刻の書式は "HH:mm:ss" のみが許容されます。他の書式は指摘できません。
  • 日付・時刻型項目を主キーとしたとき、日付・時刻の書式は "yyyy-MM-dd HH:mm:ss" のみが許容されます。他の書式は指摘できません。
  • 複合キーは、チェックボックスを使ったモデル参照および参照連動に未対応です。
  • 参照連動項目を主キーとすることはできません。

複合キーの内部的な表現 7.8

複合キーを利用した場合、Wagbyが生成するWebフォームでは次のような形式でデータを扱います。

主キー1の値$SEP$主キー2の値$SEP$...

すなわち "$SEP$" が区切り文字となります。

R7.8より前のバージョンでは、この区切り文字は "$" となっています。

関連するページ

リポジトリキーはmodel/modelitem/@primaryKeyなどです。

ja | en