データベースの詳細最終更新日: 2020年3月14日
R8 | R9

概要

「モデル項目詳細定義>詳細>データベースの詳細」を指定することができます。

図1 モデル項目詳細定義

値をデータベースに保存する

標準では有効となっています。この場合、モデルに対応するテーブルにカラム(列)が作成されます。
この設定を無効にすると、テーブルにカラムが用意されません。

計算によって導出される項目でデータベースに保存する必要がない、という場合に利用できます。

注意

ご注意ください:データベースに保存しない項目は「検索項目として利用できない」「ソート項目として利用できない」という制約があります。また、一覧表示や集計ビューに適用すると(常に再計算されるため)パフォーマンス劣化の一因となります。

インデックスを利用する

Wagby は次の条件に合致した項目は自動的に(テーブルに対する)インデックスを作成します。

データベースに対して CREATE INDEX... という命令を発行します。発行するタイミングは、外部データベースに対する初期データ読み込み (init_db.bat ファイル実行)時です。このときテーブル作成と同時にインデックスも作成します。

  • データベースに保存されている。
  • 検索項目として指定されている。
  • 数字型または日付型である。
  • 文字列型の場合、完全一致検索が指定されている。また、テキストエリアではない。
  • モデル参照項目のキー格納部分である。ただしチェックボックスを除く。
  • このモデルに対する検索行為が生じること。("画面 > 検索・一覧表示 > 画面を作成する" が有効になっている、または他のモデルから「モデル参照」が行われ、サブウインドウで検索を行うこと)

本設定を無効とすることで、インデックスの作成を抑制します。

テーブル定義の型

リポジトリに指定する「整数型」や「文字列型」は、各データベースが用意するそれぞれの型へ自動変換されます。

画面から入力した値をデータベースに格納できるような適切な長さを指定することが必要な場合もあります。

例えば MySQL を用いた場合、文字列型は varchar(255) として扱われます。初期サイズとして小さい場合は、変更が必要です。

この型を詳細に指定することができます。図2では、文字列型の項目について、テーブル定義の型を varchar(1024) へ変更した例です。

図2 型を指定する

ワンポイント

既存システムのテーブル定義を Wagby で再利用するような場合、テーブル定義側の型情報をこの欄へ転記してください。

文字列型の場合の特殊表記

文字列型項目の場合、図2の欄に数字を記述することで「文字列長」として解釈されます。

Wagbyが自動生成する create ddl 文に、指定した数字が反映されます。この数字がバイトなのか文字なのか、については、ご利用のデータベースの仕様をご確認ください。

参照先項目のテーブル定義の型と同じ設定を適用する

モデル参照項目で、参照先モデルの主キーがテーブル定義の型を指定している場合、「参照先項目のテーブル定義の型と同じ設定を適用する」をチェックしてください。

図3 参照先項目のテーブル定義の型と同じ設定を適用する

本設定は、この項目がモデル参照の場合にのみ、チェックすることができます。チェックした場合、「テーブル定義の型」は入力不可となります。(本設定が優先されます。)

物理カラム名

通常はモデル項目の「項目ID」(英語で表記)がテーブルのカラム名として用いられます。「物理カラム名」を指定することで、この動作を変更することができます。

図4 物理カラム名を指定する

ワンポイント

既存システムのテーブル定義を Wagby で再利用するような場合、テーブル定義側のカラム名をこの欄へ転記してください。

複合キーモデル参照の場合

複合キーモデルを参照する他モデル参照項目でも物理カラム名を任意に指定することができます。

物理カラム名項目の入力欄に、コンマ区切りで(複数の)物理カラム名を記入します。[詳細...]

日本語カラム名を指定する

物理カラム名に日本語を利用することができます。[文字コードの設定について...]

一意制約

一意制約を設定すると、同じデータを重複して登録できないようになります。図4にあるように、制約名を指定します。

図5 一意制約を指定する

複数項目の組み合わせ

複数の項目を組み合わせた一意制約を設定することもできます。図5,図6は「氏名」と「氏名かな」項目の二つで一意制約としています。このように同じ制約名をそれぞれの項目に設定します。

図6 氏名項目に指定した一意制約
図7 氏名かな項目に指定した一意制約

複数の一意制約名を指定する8.3.3

一意制約に "a1,b1" というようにコンマ区切りで記述することができます。

仕様・制約

  • 一意制約に関する仕様・制約をまとめています。
  • カンマ区切りで複数の一意性制約名を指定したとき、個々の制約名の長さチェックではなく、全体での長さチェックとなっていました。R8.3.7/R8.4.2で修正されました。制約名の長さでエラーとなる場合、名前を短くするか、R8.3.7/R8.4.2以降のWagbyをご利用ください。

ロック名

Wagbyが内部で管理するロックキーのルールを変更することができます。通常、この設定を行うことはありません。

詳細は"ロックキーのカスタマイズ"をお読みください。

トランザクション制御

"モデルをまたがる計算(トランザクション)"をお読み下さい。