サポート > リポジトリ > モデル > データベースのビューを利用する

データベース上に用意した「ビュー」を、Wagbyの「モデル」として扱うことができます。

Wagbyで定義したモデルの物理テーブルを作成せず、データベースに用意したビューを参照させるようにすることができます。

図1 ビューを参照させる

定義方法は次のとおりです。

  1. テーブルを作成しない設定とします。
  2. 物理テーブル名にビュー名を指定します。(モデル名とビュー名が同じ場合は省略可能です。)

主キーの扱い

ビューを利用する場合でも、主キーが必要です。(Wagbyのモデルは主キーの指定が必須です。)

既存データベースのビューに主キーがない、という場合は、追加してください。

キャッシュの扱い

更新を伴うビューを用いる場合、キャッシュの扱いを考慮する必要があります。 詳細は"テーブル操作に関する注意点まとめ > キャッシュ"をお読みください。

(利用するデータベースの)ビュー側に次を用意することで、Wagbyが提供するグループ権限を利用することができます。

  • useridjshparamカラム。
  • (ビュー名)$jgroupidjshparam テーブル。

useridjshparam カラムとは、用意するビューの SELECT 句へ「useridjshparam」を追加し、データ所有者アカウントを返すようにします。
(ビュー名)$jgroupidjshparam テーブルにはデータの所属グループのグループIDを格納してください。グループID は jgroup テーブルの主キー jgroupid を用います。

別のモデルで xxxx$jgroupidjshparam テーブルを利用するようにし、これを参考にするとよいでしょう。
(ビュー名)$jgroupidjshparam テーブルを、実際にはテーブルではなく、これもビューとして用意することもできます。
グループ権限は WHERE 句に絞り込み条件を指定することで、閲覧/更新の制御をおこなっています。WHERE 句の絞り込み部分は Wagby 側で自動生成していますので、useridjshparamカラムと、xxxx$jgroupidjshparam を用意することで動作するようになります。

必須項目の扱い

Wagbyで定義したモデルで「必須」とした項目で、実際にはビュー側に NULL が存在していないかどうかを確認してください。Wagby は必須項目では NULL は存在しないという前提であるため、NULL が見つかると正しくデータを取得できず、エラーになります。

Wagby Developer Day 2017