こんなふうにテーブルとリレーションを構築してはいけない例

投稿内容:「こんなふうにテーブルとリレーションを構築してはいけない例を紹介します。」





データ作業時間を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 件のコメント :

コメントを投稿

[プロモーション]