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

最終更新日: 2024年10月30日
R8 | R9

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

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

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

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

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

定義方法

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

会社モデルと顧客モデル

会社モデル

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

会社モデルの定義

顧客モデル

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

顧客モデル

会社ID

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

外部キーの設定

会社名

  1. (顧客モデルの)会社IDをトリガーとして、(会社モデルの)会社名を参照連動します。
    参照連動の設定
  2. この項目はデータベースに保存しないとします。これによって会社モデルに対応したテーブル定義には、この会社名項目は含まれなくなります。
    データベースに保存しない

    ワンポイント

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

  3. 「検索制御」タブを開きます。
    条件式を「文字列の部分一致」に設定します。
    条件式を「文字列の部分一致」に変更する

    注意

    条件式は標準で空白となっています。この場合は完全一致検索となります。

    条件式が未設定の場合

仕様・制約

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

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

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

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

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

指定できない場合

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

サブデータベースとの組み合わせ

一つのSQLクエリにメインデータベースとサブデータベースへの問い合わせを含めることはできません。

上の例ですと、「顧客」モデルがメインデータベース、「会社」モデルがサブデータベースという場合は検索できません。(実行時エラーとなります。)