投稿内容:「こんなふうにテーブルとリレーションを構築してはいけない例を紹介します。」
データ作業時間を10分の1に、人生の充足時間を10倍に。
どうも、初級向けデータスッキリ管理コンサルタントのながにぃです^^
※本投稿はFileMaker制作経験が未経験~概ね2年ほどの方に向けたものです。
誰でも簡単に作れる・・・はずなのに
あなたはFileMakerを独学で制作していますか?
データベースを作る経験があまりないと、最初はどのように構築していっていいか分からないと思います。
そこにリレーションが加わると、ますます頭に?マークがくっついてしまうでしょう。
FileMakerの場合、「誰でも簡単に作れる!」なんていうキャッチフレーズがついていたりするので、「きっとできるはずだ!」と、あれこれリレーションしてみることになります。
でも結局思い通りにいかない。。
ということも多いかと思います。
リレーションがうまくいかないパターンはいくつかあると思いますが、今回はそのうちのひとつを紹介してみたいと思います。
うまくいかないパターン例の概要
今回紹介するのは、エクセルシートをそのまま使ってFileMakerにしてしまうパターンです。
筆記具や備品などの消耗品を管理するエクセルをFileMakerで管理するという想定で話を進めてみましょう。
エクセルには5つのシートがあります。
・購入記録

・承認

・筆記(用具)

・事務用品

・備品

購入記録を残して、承認の記録も残したい、という要望のエクセルです。
いろいろとツッコミどころのあるエクセルに見えると思いますが、かなりいい加減に作ったサンプルなのでご容赦ください(^_^;)
ともかく、こういうエクセルをFileMakerで管理したい!という想定です。
FileMakerにテーブルを作成してみると・・・
最初はエクセルをFileMakerアイコンにドラッグ&ドロップして、ともかくも購入記録シートをFileMaker化します。

他のシートもインポートしてテーブルを追加していきます。



はい、実はもうこの時点で危うい方向に進んでしまいました。
各シートをうまく取り込んだように見えますが、このテーブル構造はあまりよろしいとは言えません。
なぜよろしくないかというと、ざっくり言えば似たようなテーブルが存在しているからです。
例えば「筆記用具」「備品」「事務用品」の3つのテーブルです。
3つあるということは、管理するテーブルも3つあるということです。
もしリレーションする場合、3つのリレーションが必要になってしまい、それだけで煩雑になってしまう未来がイメージできます。
また、購入記録と承認のほうも、同じような項目があったりしてやはり良い状態とは言えません。
データを追加更新するとき、両方のテーブルを更新していかなければならなくなります。
そして仮にこの状態でリレーションを組んでみても、やはりあまり良い未来が見えてきません。
まだ5つのテーブルなら何とかなるかもしれませんが、今後拡張していくときに複雑なリレーションを張ることになってしまいそうです。

教訓:
エクセルのシートをそのままテーブルにしてはいけない場合もある。
FileMaker化する前にデータ整備をする
エクセルのシートをそのままテーブルとして取り込んではいけない場合があります。
FileMakerに取り込む前に、まずデータの整備を考えてみたほうが確実に良いです。
では今回のサンプルではどうなるでしょうか。
次のシート構造はあくまで一例ですが、データ整備を行ってから再度FileMaker化してみたいと思います。
エクセルのシートを3つにしました。
黄色い項目が追加したものになります。
・購入記録

・社員

・消耗品

整備した点は大きく3つです。
①購入記録シートに、購入数と承認者と承認日を追加しました。
②新たに社員シートを作りました。
③筆記・事務用品・備品のシートを消耗品シートに統合しました。
この状態で3つのシートを取り込んでFileMaker化してみます。
もうおわかりのように、テーブルは3つだけになります。




リレーションも組んでみます。
※購入記録テーブルに製品番号を追加しました。(消耗品番号という名前の方が分かりやすかったかも)

このデータ整備による変更によって、何が良くなったか。
基本的にデータ(レコード)を追加するのは購入記録テーブルだけで良くなります。
先の5つのテーブルのときは、どのテーブルに追加していけばいいか分かりづらく、1つのテーブルに追加したら他のテーブルにも追加しないといけませんでした。
今回3つのテーブルになったことでシンプルになり、データの追加もリレーションもスッキリして分かりやすくなるため、今後の拡張性も楽になります。
ちなみに、リレーションするテーブルオカレンスはリレーション先のテーブルオカレンスを複製してリレーションを張ります。
そうすることで全部がつながるのではなく、目的別にリレーションが張られることになって後々拡張しやすくなります。
FileMakerに取り込む前のデータ整備はどうやってやるの?
データの整備って言うけど、じゃあ何か基準があるの?ということです。
大きく2つの種別を意識して整備すると良いのではないかと思います。
●ログ的なもの
●一覧的なもの(製品一覧、名簿一覧のような)
ログ的なものは、日々データが追加されていくようなテーブルです。
一覧的なものは、たまに編集があるくらいで、頻繁にはデータが増えていかないテーブルです。
今回のサンプルでいうと、ログ的なものが購入記録テーブルになり、一覧的なものが社員と消耗品テーブルになります。
日々データを追加していくのは購入記録テーブルだけになるので、とてもシンプルになったかと思います。
社員と消耗品は単なる一覧なので、増えたときだけデータ追加することになります。
ちなみに、消耗品シートを作成したときの”ミソ”は、「筆記」「事務用品」「備品」のくくりを「種別」というひとつの項目にしてしまったことです。
それによって、消耗品シートというひとつのシートにすることが出来、3つのシートが1つのシートになりました。
いかがでしたでしょうか。
もちろん、5つのテーブルの方でも決して間違いではありません。
ただ、データ管理の手間や将来の拡張性を考えると、エクセルをFileMaker化する前に一度データ整備をしてから制作を進めた方が良いと思います。
FileMakerを制作していく上で、参考になれば幸いですヾ(*´∀`*)ノ
今日も良い一日を♪
0 件のコメント :
コメントを投稿