正規化の話ですが、文章じゃつまらないので実際に作っていきます。
前回作ったワードへの転記ファイルは、テスト用(しかも非正規化)なので、新たに作っていきます。
先に完成画面を見てみましょう。
案件の受付だけですが、正規化を説明するのにはふさわしい画面です。
◆図1
左側は案件受付ファイルのフールドを並べてみました。右側にはフォルダの様な図形タブと呼びます)の中に複数の関係者が入っています。
(データの内容は気にしないでください)
受付内容は1レコードに納めています。 一方、関係者は複数設定しなくてはいけないので、別のファイル(もしくはテーブル)から参照しています。ファイルメーカーでは、このレコード行をポータルと呼び、別ファイル(もしくはテーブル)の複数レコードを参照させて表示しています。
なにをもって参照させているのかというと、keyフィールドをインデックスにして照合させています。
◆図2
この図がリレーション(関係)を結び付ける図なのですが、分かりやすい様にファイルの絵を入れてみました。
ファイルメーカーでは、この一つずつのかたまりをテーブルと呼んでいます。
3つのテーブルを結んでいる図です。
案件管理と関係者明細は 案件_id というフィールドをkey(索引)にして照合
関係者明細と関係者は 関係者_id というフィールドをkey(索引)にして照合
リアルのファイル間でいうと、インデックス・付箋のようなもので、関連付けをしています。
<正規化>
案件管理というテーブルと、関係者明細テーブル、そして関係者テーブルの繋がりが分かります。これによって必要なデータを分けて管理することができます。
<第二正規化>
複数の関係者を結ぶ時は、明細というテーブルを間に置いて照合させます。<第一正規化>
明細を間に置かずに直接、案件管理と関係者を結んでしまうと、複数の関係者の登録は出来なくなります。<非正規化>
案件管理ファイル側に複数の関係者を持たせることは出来ますが、そうなるとデータ量が増えテーブルが重くなります。●一人を削除しようと思ってレコードの削除をしてしまうと、データ全部が消えてしまいます。関係喪失
●案件を更新する度に関係者データまで一緒に更新しなくてはいけません。重複更新
●また関係者情報としての事前登録が出来なくなります。事前登録不能
ただし、あまりにも正規化に拘ると逆に検索が遅くなります。
ですので、明細側にはルックアップで関係者のデータを一部保管できるようにしています。
こういうリレーションを複数組んでいくことによって、
受付, 事件管理, 関連書類・印刷・保管, スケジュール管理
または、見積 ,請求, 入金などの売上という一連の管理が可能になります。
ここまでの作品をダウンロード
(開くにはFileMakerPro12以上が必要です 環境Windows7で作成)
0 件のコメント:
コメントを投稿