![見出し画像](https://assets.st-note.com/production/uploads/images/127003959/rectangle_large_type_2_ef48805fe72ca8cb45ac4cd82f5c536c.png?width=1200)
テーブルの設計 その1”情報の整理"
■ データベース開発のキモ
Accessで作成するシステムのキモは、テーブルの設計。
Accessでシステムを作る時に、一番頭をフル回転させて考えるのが、テーブルの設計です。
今回は、小さなシステムを作る時の、俺的テーブルの設計が少しでも伝われば良いと思います。
今回を含め、6~8回に分けて記事にしていきます。
先は長いですが、よろしくお願いいたします。
■ 現状把握で出てきた”情報”を洗い出す
まずは、どんな情報があったかを、リストアップします。
今回の事例は、こんな感じです。
![](https://assets.st-note.com/img/1701582193082-6ZQvR7Etx7.png?width=1200)
正直、こんなことまで?って思いますよね。
いいんです、兎に角、現状把握で出てきた言葉を書いていきます。
■ エンティティとなる候補を選ぶ
リストアップされた情報から、エンティティの候補を選びます。
基本的には、下のような基準で選びます。
|元データ
ま、これが無ければ始まりません。
業務開始となるトリガー情報です。
今回の場合は「宅配指示書」がそれにあたります。
|選択しているモノ
この手の情報はマスターテーブルになる可能性が高いです。
選んでいる物や情報をチョイスします。
今回の場合は、「送料の早見表」「梱包箱」「配達業者」「荷姿」になると考えました。
|出力しているモノ
アウトプットしている情報や物に対しても、エンティティになる可能性があるので、とりあえず、選んでいきます。
今回の場合は、「送料」「納品書」「控え(宅配指示書)」になると考えました。
|入力しているモノ
入力している情報だけではなく、紙やメモに書いた情報も含みます。
とりあえず、選んでいきます。
今回の場合は、「送料」「荷姿」「取り消し」「同梱」「営業所止め」「配達業者」「配達切り替え」「出荷先変更」としました。
これらで選んだものを第一候補とします。
![](https://assets.st-note.com/img/1701583412801-ES3UBZIHek.png?width=1200)
■ 基本的に同じモノは排除する
データベース設計を簡単にする為に、基本的に同じモノは統合しています。
現状把握で出てきたモノから、第一候補から「基本的に同じ」なら統合してしまいます。
分かりやすい事例を紹介します。
今回の場合は、住所や配達業者が重複しているように思えます。
「〇〇データ」は、「△△情報」にもあるから、のような要領で排除します。
![](https://assets.st-note.com/img/1701584523873-JnMCFWIN33.png?width=1200)
■ 関係のない情報を排除する
次に、関係ない情報を排除します。
ま、初めに行ってもいいですね。
ここで言う関係ない情報とは、システムの適用範囲に入っているかどうかで判断します。(ここで、前回のプロジェクト憲章が役に立つ)
今回の場合は、「納品書」が関係なさそうです。
![](https://assets.st-note.com/img/1701584727978-wllW8QN8YP.png?width=1200)
■ 最終目的を果たす為の必要最小限の情報を残す
システムの最終目的を強く意識して、不要な情報を排除します。
場合によっては、排除した情報を復活させます。
今回の場合は、「R/3に出荷伝票単位に送料をアップデートさせる」ことが、最終目標です。
「宅配指示書」から「送料」を計算できれば、いいのです。
今回は、下図のようにしたいと思います。
![](https://assets.st-note.com/img/1701585871956-VmbK1CaOWZ.png?width=1200)
最終的に残ったのは、「宅配指示書」「送料の早見表」「梱包箱」になりました。
始めに書きます。
「不完全でいいんです!」
実は、ベースとなる情報の整理をすることが目的です。
現時点では、データベース設計の手順としては、まだ準備段階。
■ まとめ
手順をおって説明しているように、記事を書きましたが、実際には、前に戻ったり、同時に考えたり、もう一度現場を確認しています。
順番なんて無いのです。
ここでは、目的を達成する為に必要な情報を洗い出すことが重要なんです。
その為に、目標を強く意識すること。
「最低限、この情報さえあれば、目標は達成できる自信」が重要です。
さて、次回は、鬼門の「データベースの正規化」の前準備について、書いていきます。
ここまで、読んでくれた方々、本当に感謝感激です。
こんなの、本当に為になったのか、微妙。
ですが、一人でも共感してくれれば、十分です。
この記事が気に入ったらサポートをしてみませんか?