実績テーブルとマスタテーブルの違いはどこにあるのか、そしてマスタテーブルのポイントとは
また、テーブルのリレーション(繋がり)について解説します。
マスタテーブルを分ける必要性は
主となる実績テーブル(仕入、売上データ)の項目の中に、繰り返し使用されるデータがあります。繰り返し入力されるデータは同一性が要求され、最新データの管理、データの仕分けなどに利用されます。
仕入、売上データの場合、取引先(仕入先、販売先)、そして商品などがマスタとして別に管理するのが効率的です。
以下の仕入先マスタを参考に、独自のマスタテーブルを作成してください。
仕入先マスタ(マスタテーブル)
- 仕入先CODE テキスト型
- 仕入先名称 テキスト型
- 担当者 テキスト型
- 取引先分類 テキスト型
- 住所 テキスト型
- 登録日 日付または数値 yyyy/mm/dd または yyyymmdd
- 更新日 日付または数値 yyyy/mm/dd または yyyymmdd
その他支払い、請求管理に使用する場合は、締め日、支払期日、支払いサイクル、取引残高、金額端数の処理方法、相殺CODEなど、適宜加えることが必要です。
データ登録時の入力支援、実績データの抽出や集計のKEYとなる項目を念頭に、マスタテーブルを作成してください。
商品マスタ(マスタテーブル)
- 商品CODE テキスト型
- 商品名称 テキスト型
- 仕入先CODE テキスト型
- 仕入先名称 テキスト型
- 数量単位 数値型
- 包装単位(入目) 数値型
- 単価 数値型
- 備考 テキスト型
- 登録日 日付または数値 yyyy/mm/dd または yyyymmdd
その他メーカーコード、メーカー名、商品分類、更新日などを必要に応じて追加してください。
実績テーブルとマスタテーブルの違い
マスタテーブルは実績テーブルの中に繰り返し出てくる項目(商品や取引先)の情報をまとめたものです。
・商品価格、取引先情報など最新情報の管理
・抽出や集計のKEY項目を設定
などの役割があります。
もちろん、実績テーブルとマスタテーブルで、項目ごとのデータ型は統一する必要があります。
マスタテーブルのポイント
- 繰り返し入力される項目の同一性担保
- 最新情報の管理
- 重複のないインデック(取引先CODE、商品CODE)の設定
テーブルのリレーション
テーブルのリレーションとは、テーブル同士の連携のこと
複数のテーブルで、共通の項目を結びつけて、仮想のテーブルが作成することができます。
仕入先マスタ、商品マスタ(マスタテーブル)と仕入データテーブル(実績テーブル)は、商品コード、取引先コードで繋がっています。
その仮想テーブルを利用して集計、分析が可能となります。
正規化
例として、社員名簿に社員番号、氏名、部署コード、部署名が、名簿の項目としてあり、新年度に部署名が変更になるとします。
社員名簿のみであれば、すべての社員番号に対して1レコードずつ部署名の変更が必要です。
それに対して、部署コード、部署名の部署テーブルが別にあれば、部署テーブルの部署名変更で、社員名簿の部署名が一括で変更出来ます。
社員名簿と部署テーブルの連携は必要となりますが、最新版管理が効率的に実現できます。
しかし、実績記録を目的としたテーブルでは、最新版管理ではないので注意が必要です。
上の実績テーブルは、仕入(購入)記録データです。C列の仕入先CODEから、マスタテーブルにある仕入先情報を取得することができます。D列の仕入先名を省略することもできます。
また、E列の商品CODEから、マスタテーブルにある商品情報を取得することができます。F列の商品名も省略することができます。
しかし、仕入先名と商品名に変更があった場合にも、常に最新が表示されることとなり、適正でないこともあります。
実績テーブルの履歴データには仕入先名と商品名のデータ項目を設け、更新しないことが大切です。
価格変動のある、商品の単価などは、特に重要となります。
新規入力の際に、最新のマスタから、商品情報の取得することができればよいと思います。