WAGBY11 MANUAL / 02
主キーを設定する
一件のデータを識別する主キーと、業務で使うコードを分ける考え方を説明します。
最終更新日:
1. このページで伝える機能
主キーは、一件のデータを他のデータと区別するための項目です。商品名が変わっても同じ商品を更新できるよう、この例では変更しない内部IDを主キーにします。
業務で入力する商品コードは別項目にし、一意制約で重複を防ぎます。主キーと商品コードの役割を分けることで、コードを変更しても同じデータとして扱えます。
2. Wagby11で実現できること
2.1 商品IDで同じ商品を識別する
登録直後の商品には、商品ID「1」と商品コード「P001」が表示されています。

この商品の商品コードを「P001-R」、単価を1500に変更して保存しました。商品IDは「1」のままで、データは新規追加されず、同じ商品の情報が更新されます。

2.2 用途に合わせて主キーを選ぶ
| 構成 | 使い方 |
|---|---|
| 自動採番IDを主キーにする | 本例。変更する可能性のある業務コードを主キーと分ける |
| 業務コードを主キーにする | 手入力のコードで識別する。登録時に主キー値の入力が必要 |
| 複数項目を主キーにする | 親と明細などを複合主キーで識別する。詳しくは親子関係へ |
このページの画面と設定例は、自動採番IDを主キーにする構成です。運用中の主キー構造を変える場合は、既存データと参照元の移行も必要になるため、新しい設定だけを上書きして変更しないようにします。
3. AIへの指示例
最小限の指示例
商品の主キーを商品IDにして、商品コードとは分けて管理してください。AIはIDの型や採番方法、商品コードの制約を、既存の定義や利用目的から類推して補います。主キーを変更する必要があるか、既存データへの影響はどうかも確認して進めます。
より詳細な指示例
商品を識別する主キーと、業務で使う商品コードを分けてください。
商品IDは自動採番する変更不可の主キーとし、商品コードは最大30文字の必須項目で、他の商品との重複を禁止してください。
商品コードを変更しても、商品IDが変わらず同じ商品の情報を更新できるようにしてください。
すでに主キーや参照元、登録データがある場合は、現在の構成と移行の要否を確認してください。
既存の主キーを安易に置き換えず、変更方針と確認結果を説明してください。4. 編集されるAppSchemaの例
商品IDにpk: trueを指定し、商品コードには指定しません。商品コードの重複はuniqueで別に防ぎます。以下はentity.attributesの抜粋です。
- name: 商品ID
name_en: productId
type: autoid
pk: true
- name: 商品コード
name_en: productCode
type: string
length: 30
not_null: true
unique: uq_product_code
validation:
presence: { create: error, update: error }標準画面の更新・詳細・削除は、対象の主キーでデータを識別します。利用者が更新フォームで主キーを入力し直す必要はありません。自動採番の動作はIDを自動採番するで説明します。
5. 参考資料
- guide:モデルを作成する(主キー)
designer/docs/appschema/html/guide/03-model/01-create-model.html- reference:entity(主キー・登録時の主キー入力)
designer/docs/appschema/html/reference/06-entity.html- guide:エンティティ間の関係
designer/docs/appschema/html/guide/03-model/03-relations.html