データベースの基本⑥~テーブルの作成

Pocket

テーブルの作成手順
・どのようなフィールドが必要なのか?
・フィールドの設定(データ型やデータのサイズ)の決め方
などを具体的に解説します。

フィールドの決め方
テーブルを作るときに一番悩むのは、どのようなフィールドが必要になるのか?ということです。もちろん後からでも追加できるので、最初にきっちり決める必要はありません。
まずはじめにどういった情報を貯めたいのかを考えます。

一番分かりやすい方法は、結果から辿る方法です。Accessデータベースを使って請求書を出したいということであれば、必要となる情報は
①得意先名
②担当者
③〒
④住所
⑤電話番号
⑥請求日
⑦締切日
このように取引先の情報がないと、請求書を作っても送ることができません。あと請求日もないといつの請求なのかも分かりません。

次に請求書にはいつ何を幾らで買ったのか?の情報も乗せる必要があります。そうなると
⑧取引日付
⑨商品名
⑩売上数量
⑪売上単価
⑫売上金額
⑬摘要
最終的な目的からイメージすればいくつか必要な情報がでてきます。まずはこのような形でフィールドを作っていきます。

もう少し請求書をイメージしてみると、
得意先名や住所等(①~⑤)の情報は請求書の上の方に一つあれば十分です。でも取引情報(⑥~⑪)はその請求書の期間の取引のすべてなので、データがいくつも存在しています。
このように請求書に一つあれば間に合う情報と、いくつも存在する可能性がある情報を一つのテーブルにまとめることはできません。(できなくもないのですが非常に非効率です。)

ここで必要になるのが、請求書NOというフィールドです。これを両方のテーブルに作ることで、請求書の基本的な情報と、その取引明細を関連付けすることができるようになります。

さらに深堀すると、①~⑤の情報は請求日が違ってもこれらの得意先の情報は変わることがありません。でも⑥と⑦の情報は請求書の都度変わります。同じ請求書の上部に乗っける情報でも、種類が異なる情報になるので、これも分ける必要がでてきます。ただ関連付けは必要となるので、得意先テーブルと納品書テーブルに得意先CDというフィールドを作ります。

①~⑤の情報は得意先に関する情報なので、請求書とは分けて管理した方が効率的です。

ここまでをまとめると
得意先情報として①~⑤、請求書の情報として⑥と⑦、請求書の明細として⑧~⑬
といった具合に3つのテーブルを作る必要があることがわかります。このようにテーブルとフィールドを設計していきます。

===========================================
昨日は久しぶりの10キロタイム走。
45分設定の、43分43秒とまずまずの走りでした。
と言いつつも、このタイムで息が上がるようでは・・・
もう少し追い込まなと。

本日も最後までお読みいただきありがとうございます。