15
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

FileMakerAdvent Calendar 2014

Day 8

【FileMaker】リレーションの使い分け

Posted at

リレーション。
それはまさにリレーショナルDBに慣れた世界からすると異世界に感じるFMの「リレーション」。
最初一文読んだときは

「えー、よくわかんなーい」

ですっ飛ばして色々やっていたら、実は大事なリレーションであることがわかった。。。

これ↓、ダメです。
1208_1.png

つまり、FileMaker以外のリレーショナルDBでは、最初に主キーと外部キーを決めておき、リレーションしておくことがDB屋さんのお仕事になります。
アプリケーション開発者はその設計されたDBを使って画面を作ったりプログラムを組んだりするわけです。

FileMakerは違います。

もちろん、主キーや外部キーは決めますが、

画面ごとにそこで使うリレーションを設計する

ことになります。
システムで使うリレーションを一つのリレーション図(「オカレンス」といいます)で設計してしまうと、負荷分散ができず、スピードに遅延が発生すると言われています。

なので、リレーションではそれぞれの画面のテーブルを配置して設計していきます。

一覧画面と明細画面を設計する

例えば一覧画面を作る場合です。
一覧画面用のテーブルをリレーションに配置します。
その際、どの画面で利用するのかがわかるように名前を変更(追加)しておくと開発が楽になります。
1208_2.png

一覧で使うリレーション、一覧からクリックして詳細を表示する画面のリレーション、というように別々に追加して配置していきます。
1208_3.png

この辺の感覚は、最初慣れないですよねー^^;;;

明細も同じページに表示する

そのほか、画面を分けずにページに明細も含める場合というのだと一覧+明細のリレーションになりますが、「このページだけ」の利用ですよ。
1208_4.png
大事だからもう一回言っておきますよ。

このページだけ

画面の作り方

ついでなので、このリレーションを使った各画面の作りを見ていきましょう。
画面の作り方は色々あるかと思いますが、そのうちの一つの方法です。
全てこの方法で作るということではなく、要件に応じて様々な作り方があります

一覧と明細画面の作り

では、一覧と明細画面を分けた場合の作り方です。

リレーションを張った関係は、親と子のような感じになるので、親を追加したら子も追加できるようにしておきます。
1208_5.png

明細画面に移動する際、特定の明細を検索して表示します。
1208_6.png

画面からスクリプトを実行するのは、こんな感じでしょうか。
1208_7.png

データを入力すると、明細の詳細ボタンでその詳細に遷移できます。
1208_8.png

飛べたよ。
1208_9.png

同一ページの作り

親子一緒に表示する場合は、左に親のデータ、右に子である明細を表示するようにポータルツールで設計します。(明細のタイトル表示などは省略)
1208_10.png

〆るよ

では、〆です。
1208_12.png

15
14
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?