
テーブルを始めて作ると、、、
テーブル[レシート]
売上日
商品1
金額1
商品2
金額2
商品3
金額3
商品4
金額4
小計
消費税
合計
お預かり
お釣り
こんなテーブルになると思います
最初は、この状態からスタートしますが、
これをAccessで管理しやすい正規化されたテーブルに徐々に整えていきます
この段階のテーブルでの問題は
・商品が5つ以上売れた時に入力できない
であれば、商品を20くらい入力できるように
商品1・・・ 商品19,商品20
金額1・・・ 金額19,金額20
とすればいいのか
という訳でもありません
こういう場合は、テーブルを分けます
これが親テーブル
売上日
小計
消費税
合計
お預かり
お釣り
こっちが子テーブル
商品
金額
となります
この形であれば、
いくつ商品を購入されても入力できます
重要なのは、親と子のデータがつながっていることです
このままでは、子のテーブルのデータを見たときに、
どの親のデータかわかりません
そこで、親のテーブルに連番をつけます
レシート番号 ← これが連番
売上日
小計
消費税
合計
お預かり
お釣り
子のテーブルは、親の連番をテーブルに保存することで、
どの親のデータか特定できるようにします
レシート番号 ← これは親を特定するために必要
商品
金額
ということで、まずはテーブルが2つに分かれます
親テーブルでのレシート番号は、
重複することが無い、そのデータを特定できるものとして、
プライマリキーと呼ばれます(Accessでは主キーとも呼ばれます)
[売上親テーブル]
レシート番号 [長整数] ※プライマリキー
売上日 [日付時刻]
小計 [通貨]
消費税 [通貨]
合計 [通貨]
点数 [整数]
お預かり [通貨]
お釣り[通貨]
[売上子テーブル]
レシート番号 [長整数]
商品 [文字列]
金額 [通貨]
レシートのデータは、以下のように登録されます
これから、何段階かに分けてテーブルを徐々に正規化していきます