売上伝票の鑑部のテーブルを正規化する方法。

システム開発でデータベースを使うには、データを保存するテーブルの正規化が必要です。

システム開発で言うテーブルの正規化とは、
データをルールに従って、利用しやすい形にすることです。

テーブルの正規化については、これまでの記事でも説明しています。

コツは「繰り返し入力する可能性のあるものは、別のテーブルに分ける」ということでしたね。

テーブルを正規化することで、同じデータを何度も入力する手間が省けます。

正規化されたテーブルは、ほとんどの列が数字になります。

数値を入力、選択するだけなので、文字列の場合より入力ミスが防げます。

それに数字のほうが文字列より、データベースへの保存時の容量が少なくて済むメリットがあります。

前回、売上伝票の鑑部を表形式にするところまでやりました。

システム開発

でもこの状態では、まだテーブルが正規化されていません。

繰り返し入力される可能性のある列が、いくつもあるからです。

まず、伝票Noは重複することが無いので、そのままでOKです。

日付は重複しますが、これだけは例外的にOKです。

普通の会社では、同じ日にいくつも伝票が発生します。

するともちろん、日付が重複します。

でも業務システム側で、当日の日付を自動入力することは簡単ですし、
カレンダーから選択できるようにすることも可能です。

だから日付を別テーブルに分ける必要は無いのです。

次は顧客名です。

伝票は1回の買い物ごとに発生します。

同日でも別日でもいいのですが、同じお客様が何度も買い物をする可能性は十分ありますよね。

だから顧客名は、重複するデータということになります。

顧客マスターテーブルを別に作ったほうが良いわけです。

承認印と係印はどうでしょうか?

本来、紙の伝票では、社員が印鑑を押すところです。

社員名が入っていますよね。

同じ社員が複数の売上伝票に押印ことは十分考えられます。

社内では仕事の役割や役職が決まっているはずなので、
同じ社員が何度も押すと考えるほうが普通です。

だからこの部分は、重複するデータです。

ということは、社員マスターテーブルを別に作ったほうが良いわけです。

以上の事から、売上伝票の鑑部のテーブルを正規化すると、
・売上伝票(鑑部)
・顧客マスター
・社員マスター
の各テーブルができます。

システム開発

売上伝票には、数字が入力されている点がポイントです。

日付は表示形式だけの問題です。数字と記号で入力することも可能。

このように正規化されたテーブルでは、メインのテーブルには、ほとんど数字が並ぶことになります。

必要に応じて、他のテーブルを参照すれば、顧客名や社員名が分かります。

また結婚などによって、社員の姓が変わった場合でも、社員マスター側を変更するだけで済み、メインの売上伝票には影響しないのもメリットです。

これがリレーショナルデータベースの考え方です。

スポンサードリンク

スポンサードリンク






システム開発実践講座 TOPへ