参照連動項目を検索条件に指定する

最終更新日: 2020年3月14日
R8 | R9

「会社」モデルを親とし、それに紐づく「顧客」モデルを子とした例

図1,図2はそれぞれ "ジャスミンソフト" と "ジャスミン商事" に顧客が紐付いた(外部キー関係の)定義を行っています。

図1 会社ジャスミンソフトに紐づく2件の顧客
図2 会社ジャスミン商事に紐づく2件の顧客

(子である)「顧客」モデルの検索画面を開きます。会社名は参照連動項目であり、顧客モデルのテーブルには(データベース定義として)用意されていません。(親である)「会社」モデルと結合して、検索を行うことができます。

図3 参照連動項目を使った部分一致検索を行った例(1)
図4 参照連動項目を使った部分一致検索を行った例(2)

定義方法

親子モデル関係の定義

この例では「会社」モデルを親と、「顧客」モデルを子として定義しています。

図5 会社モデルと顧客モデル

会社モデル

「会社名」項目をデータベースに保存するようにします。(項目を定義すると、標準ではデータベースに保存されます。)

図6 会社モデルの定義

顧客モデル

「会社ID」は外部キーとなります。会社IDの参照連動項目として「会社名」を用意します。

図7 顧客モデル

会社ID

会社モデルの主キーを、外部キーとして指定します。

図8 外部キーの設定

会社名

(顧客モデルの)会社IDをトリガーとして、(会社モデルの)会社名を参照連動します。

図9 参照連動の設定

この項目はデータベースに保存しないとします。これによって会社モデルに対応したテーブル定義には、この会社名項目は含まれなくなります。

図10 データベースに保存しない

ワンポイント

データベースに保存するという設定を行うこともできます。この場合、親の会社モデルの会社名が変更された場合でも、子である顧客モデルのデータは古い会社名のまま維持されます。

検索条件 - 条件式

文字列型

条件式は標準で空白となっています。参照連動項目を検索条件として用いる場合、完全一致検索となります。

図11 条件式が未設定

「文字列の部分一致」を選択すると、部分一致検索となります。(上の例で示した動作は、この設定を行った場合となります。)

図12 文字列の部分一致検索

数値、日付型

範囲検索を有効にすることで、範囲による検索条件を設定できるようになります。

図13 範囲検索を指定する

仕様・制約

参照先項目はデータベース保存されていること

参照先の項目は、"データベースに保存する" ようにしてください。(上の例における「会社モデル」の「会社名」はデータベースに保存する設定となっている必要があります。)

連動元項目はデータベース保存されていること

連動元の項目も、"データベースに保存する" ようにしてください。(上の例における「顧客モデル」の「会社ID」はデータベースに保存する設定となっている必要があります。)

参照連動の数珠つなぎ(例えば「参照連動 > 参照連動 > ... > 参照連動 > 文字列型項目」という場合)は、最後の項目が "データベースに保存する" となっている必要があります。

指定できない場合

下記の指定は行えません。