第25話 テーブル設計について(テーブルの役割、ER図、関連の種類)

エヌ・ケイ・カスタマイズの福山でございます。前回、泉よりテーブル設計において、テーブル、フィールド、関連(リレーションシップ)の定義作成についてご紹介させていただきましたが、今回も引き続いてテーブル設計についてご紹介させて頂きたいと思います。

以下の記事は、FileMaker Master Book 初級編(バージョン 19 対応)より、
「7.9 情報をテーブルにする 3(161ページ)~」を元に掲載しています。

この文献から、テーブルの役割、リレーションシップ、関連の種類について学びました。文献の執筆者、関係者の方々に深謝いたします。

なお、このブログ記事の趣旨は、弊社所属スタッフの FileMaker 学習の成果を公開することを目的とし、同時に、参考文献の内容の紹介に資するものであることを Claris International Inc. が確認しています。

Claris FileMaker 公式トレーニング教材


前回までで、テーブルとリレーションシップができました。全体を確認していきます。

何度も使うものを別にする
さらに売上伝票を確認すると、何度も同じ名称が出てきています。お客様名と果物名です。これらは先に設計した「果物」と「人」を使います。それらしく「商品」テーブル、「顧客」テーブルという名前にします。
必要なフィールドを加えます(次図が外部キーを追加したテーブルです)。果物屋さんの売上管理カスタムAppのテーブルは4つ必要なことがわかりました。これでテーブルの設計が終わりました。

顧客テーブル
商品テーブル
伝票テーブル
明細テーブル

テーブルの役割
設計された4つのテーブルには役割ごとに特徴があります。大きく分けて2種類あります。

イベント
イベント、つまり出来事です。「お客様が果物屋さんから果物を買った」という出来事に関する テーブルはイベントテーブルです。
・ 伝票テーブル
・ 明細テーブル
マスタ(リソース)
お客様や果物のことです。現実に存在しているモノです。
・ 顧客テーブル
・ 商品テーブル
 この特徴をつかむと、カスタムApp に必要な機能のヒントになります。イベントとマスタでは必要な機能が違います。
 主にイベントテーブルが中心となる部分では、業務で常に使用するための機能を考えることが多くなります。一方、マスタテーブルは情報の管理について考えることが中心となります。

構造以外の設計
構造の設計と別の視点として、どのような画面が必要か、画面ごとにどのような機能を使いたいか、の設計も重要です。構造の設計と見た目の設計の両方からアプローチし、矛盾がないようにカスタムApp をつくります。
ER図
これまでに考えたテーブルのリレーションシップを「ER 図」(= Entity Relationship Diagram)と呼ばれる図で表してみます。ER 図は、データベースの設計でテーブルの関係をあらわすためによく使われるものです。直訳すると「実体関連図」です。「実体」は、テーブルのことを意味しています。1つのテーブルは図の中に必ず1つだけしか登場しません。
この方法は、テーブルとそのリレーションシップをわかりやすく表現できます。書き方のルールが複数ありますので、次図の書き方は 1 つの例として挙げます。

ER図の例

テーブルとテーブルの関係も設計できました。Claris FileMakerでリレーションシップグラフを作成するための設計図です。
関連の種類
ER 図に末端が鳥の足のようになった線があります。これは関連の種類を表しています。概要だけを記述します。

1対1
普段はあまり使わない関連です。2 つのテーブルで必ずレコードが 1 対 1 になると意味しているからです。それは、同じレコードにしてもよいです。つまり同じテーブルでもよいということになります。特殊な場合に使うと思ってください。
1 対多(親子)
最もよく使います。お客様と伝票の関係、商品と明細の関係、伝票と明細の関係です。2つのテーブルはレコードが 1 対 1 のときもあれば、1 対多のときもある場合を意味しています。ER 図の 鳥の足のような末端部分は 多 を示しています。

1対多

多対多
こういう関連もあるとだけ知っておいてください。2 つのテーブルでは実現できません。中間テーブルなどと呼ばれるテーブルを挟んで実現します。
今回は、設計におけるテーブルの役割とER図(設計図)、関連の種類についてご紹介させていただきました。
次回もがんばっていきましょう。よろしくお願いいたします。


参考文献:Claris FileMaker 公式トレーニング教材 から、「FileMaker Master Book 初級編」 等を参考にしています
https://content.claris.com/fmb19_reg-ja