ここでは、オリジナルのコンピュータを製造して販売店に卸す業務を例にとって、データベースを作成する流れを説明します。
この業務では、取り扱う「商品」と「販売先」の情報が事前に必要です。
取引が発生して「売上伝票」を入力することにより、取引ごとの情報(日時、販売先)と売上情報(販売先、商品と数量)が蓄積されていきます。
取り扱う商品や販売先の情報、取引で蓄積される情報は、「テーブル」で管理します。
テーブルに蓄積された情報から、販売先への「請求書」を出力します。取引の日時と販売先をキーとして、販売した商品名・単価・販売数を出力し、さらに合計値を算出して請求書に記載します。
●取り扱う「商品」と「販売先」のテーブル
<商品テーブル(1)>
製造・卸している製品のラインナップを「商品テーブル」に登録します。ここでは、以下の6商品が登録されているものとします。
商品ID: |
商品を管理するID(連番) |
商品: |
商品名 |
単価: |
商品の単価 |
<販売先テーブル(2)>
販売先であるコンピュータの販売店を「販売先テーブル」に登録します。ここでは、以下の3社が登録されているものとします。
販売先ID: |
販売先を管理するID(連番) |
販売先: |
販売先の販売店名 |
住所: |
販売先の住所 |
●「取引情報」と「売上情報」を管理するテーブル
<取引テーブル(3)>
1回の取引ごとの情報が「取引テーブル」に登録されます。1取引=1レコード記録されていきます。
このテーブルでは、「いつ」「どの販売先と」取引したかを管理します。
取引ID: |
取引を管理するID(連番) |
日時: |
取引を行った日時 |
販売先ID: |
取引を行った販売店の販売先ID |
<売上テーブル(4)>
販売した商品の情報が「売上テーブル」に登録されます。取引に含まれる商品ごとに1レコード記録されていきます。1回の取引では、1種類の商品が販売されるだけでなく、複数の商品が販売されることもあります。
このテーブルでは、「どの取引で」「どの商品を」「何個」販売したかを管理します。
売上ID |
売上を管理するID(連番) |
取引ID |
売上に該当する取引の取引ID |
商品ID |
販売した商品の商品ID |
●4つのテーブルの関連付け
4つのテーブルの関連付けは次の図のようになります。
●取引情報・売上情報を入力する画面
紙の売上伝票と同じ様式で、取引情報・売上情報を入力する「売上伝票の入力画面」を用意します。
入力画面から入力した情報は、取引テーブルに1レコード、売上テーブルに1つ以上のレコードとして格納されます。
<入力する情報>
売上伝票の入力画面では、取引ごとに以下の情報を入力します。
取引のあった日時 |
|
販売先名 |
|
販売した商品名と数量 |
※「商品テーブル」が参照され、商品名をコンボボックスの一覧から選択できます。 |
<テーブルを参照して記載される情報・自動算出される値>
「販売先名」を入力すると、「販売先テーブル」を参照して、該当する販売先に紐付く住所が入力画面に自動入力されます。
「商品名」を入力すると、「商品テーブル」を参照して、該当する商品名に紐付く単価が入力画面に自動入力されます。
商品ごとの合計(単価×数量)や取引全体の販売数、小計、消費税込みの合計値は、自動算出されます。
<テーブルへ格納される情報>
入力画面から入力した情報は、「取引テーブル」には1レコードの取引情報として格納され、「売上テーブル」には1つ以上のレコードの売上情報として格納されます。
●請求書の出力
テーブルに蓄積された情報から、販売先への「請求書」を出力します。
<抽出・集計される情報>
請求書に含める販売先と請求期間に当たる取引IDが「取引テーブル」から抽出されます。
例えば、「株式会社パソコン△△」」の「2017年4月」の納品分の請求書を作成するとします。
「販売先テーブル」で、株式会社パソコン△△の販売先IDが「2」であることを確認します。
「取引テーブル」で、販売先ID「2」の取引のうち、「2017年4月」の取引IDが「2」と「5」であることを確認します。
「売上テーブル」で、取引IDが「2」と「5」の売上IDが「4~6」と「11~14」の7レコードであることを確認します。これが、請求書に出力される売上になります。
売上ID「4」と「11」は同じ商品IDなので、1レコードにマージされます。
<請求書に出力される情報>
抽出した売上IDの7レコードについて、「売上テーブル」から各種テーブルを参照して、請求書に情報を出力します。
販売先名・住所: |
売上IDに紐付く取引IDをキーに「取引テーブル」の「販売先ID」を参照します。さらに販売先IDをキーに「販売先テーブル」の「販売先ID」を参照して、紐付く「販売先」と「住所」を出力します。 |
商品名・単価: |
売上IDに紐付く商品IDをキーに「商品テーブル」の「商品ID」を参照して、紐付く「商品名」と「単価」を出力します。 |
個数: |
売上IDに紐付く商品IDをキーに「売上テーブル」の「数量」を参照して出力します。 |
商品ごとの計: |
商品の単価×個数が出力されます。 |
個数の合計: |
商品の個数の合計値が出力されます。 |
総計: |
商品ごとの計の合計値が出力されます。 |
ご請求金額: |
総計が参照され、出力されます。 |