見出し画像

テーブルの設計 その1”情報の整理"

■ データベース開発のキモ

Accessで作成するシステムのキモは、テーブルの設計。

Accessでシステムを作る時に、一番頭をフル回転させて考えるのが、テーブルの設計です。

今回は、小さなシステムを作る時の、俺的テーブルの設計が少しでも伝われば良いと思います。
今回を含め、6~8回に分けて記事にしていきます。
先は長いですが、よろしくお願いいたします。

■ 現状把握で出てきた”情報”を洗い出す

まずは、どんな情報があったかを、リストアップします。
今回の事例は、こんな感じです。

情報の洗い出し

正直、こんなことまで?って思いますよね。
いいんです、兎に角、現状把握で出てきた言葉を書いていきます。

■ エンティティとなる候補を選ぶ

リストアップされた情報から、エンティティの候補を選びます。
基本的には、下のような基準で選びます。

|元データ

ま、これが無ければ始まりません。
業務開始となるトリガー情報です。
今回の場合は「宅配指示書」がそれにあたります。

|選択しているモノ

この手の情報はマスターテーブルになる可能性が高いです。
選んでいる物や情報をチョイスします。
今回の場合は、「送料の早見表」「梱包箱」「配達業者」「荷姿」になると考えました。

|出力しているモノ

アウトプットしている情報や物に対しても、エンティティになる可能性があるので、とりあえず、選んでいきます。
今回の場合は、「送料」「納品書」「控え(宅配指示書)」になると考えました。

|入力しているモノ

入力している情報だけではなく、紙やメモに書いた情報も含みます。
とりあえず、選んでいきます。
今回の場合は、「送料」「荷姿」「取り消し」「同梱」「営業所止め」「配達業者」「配達切り替え」「出荷先変更」としました。

これらで選んだものを第一候補とします。

第一の絞り込み

■ 基本的に同じモノは排除する

データベース設計を簡単にする為に、基本的に同じモノは統合しています。
現状把握で出てきたモノから、第一候補から「基本的に同じ」なら統合してしまいます。
分かりやすい事例を紹介します。

今回の場合は、住所や配達業者が重複しているように思えます。
「〇〇データ」は、「△△情報」にもあるから、のような要領で排除します。

第二の絞り込み

■ 関係のない情報を排除する

次に、関係ない情報を排除します。
ま、初めに行ってもいいですね。
ここで言う関係ない情報とは、システムの適用範囲に入っているかどうかで判断します。(ここで、前回のプロジェクト憲章が役に立つ

今回の場合は、「納品書」が関係なさそうです。

第三の絞り込み

■ 最終目的を果たす為の必要最小限の情報を残す

システムの最終目的を強く意識して、不要な情報を排除します。
場合によっては、排除した情報を復活させます。

今回の場合は、「R/3に出荷伝票単位に送料をアップデートさせる」ことが、最終目標です。
「宅配指示書」から「送料」を計算できれば、いいのです。
今回は、下図のようにしたいと思います。

第四の絞り込み

最終的に残ったのは、「宅配指示書」「送料の早見表」「梱包箱」になりました。

始めに書きます。
「不完全でいいんです!」

実は、ベースとなる情報の整理をすることが目的です。
現時点では、データベース設計の手順としては、まだ準備段階。

■ まとめ

手順をおって説明しているように、記事を書きましたが、実際には、前に戻ったり、同時に考えたり、もう一度現場を確認しています。
順番なんて無いのです。

ここでは、目的を達成する為に必要な情報を洗い出すことが重要なんです。

その為に、目標を強く意識すること。
最低限、この情報さえあれば、目標は達成できる自信」が重要です。

さて、次回は、鬼門の「データベースの正規化」の前準備について、書いていきます。

ここまで、読んでくれた方々、本当に感謝感激です。
こんなの、本当に為になったのか、微妙。
ですが、一人でも共感してくれれば、十分です。


この記事が気に入ったらサポートをしてみませんか?