みなさんこんにちは!

某大型店のセルフレジの仕様を考えてみよう(その1)
の続きですー。

前回、ざっくりとセルフレジがどんな風に動いているか流れを考えましたよね。
今度はこの処理(料理)をつくるためにどんな具材が必要なのか?を決めてデータベースを妄想してみましょう!

※ちなみに、だいたいのシステムのデータベーステーブルは、
「マスタ系」と「更新系」に分かれます!
「マスタ系」とは商品リストや顧客情報リストなどマスターとして持っておくべきデータ、
そして「更新系」というのが、レジでいう毎日の会計を保存するテーブルとなるかと思います。
そもそもマスタ系は元から業務的に保持しているマスターデータを必要な情報だけDB に保存できればOKなので
基本的にそこまで深く設計を考える必要はないですね。^^
今回は、まずレジで一番重要な会計のテーブルを考えてみましょう。

((みなさんもここで一旦自分的にどんなテーブルや項目を作ろうか妄想してみてください…!!!!!))
出来上がりましたか?^^

画像で若干見えているテーブルですが、
まずは私は一番重要な会計テーブルをこのように作ってみました。

receipt_journal(会計テーブル)

物理名称(カラム名) 論理名称 Type Null key default Extra
id レコード連番 int(11) NO PRI NULL a_i
receipt_no レシートNo int(20) NO NULL
member_code 会員コード varchar(20) YES NULL
shop_code 店舗コード varchar(10) YES NULL
product_code 商品コード varchar(20) YES NULL
product_name 商品名 varchar(100) YES NULL
product_price 商品金額 int(10) YES NULL
discount_code 割引コード int(10) YES NULL
discount_price 割引金額 int(10) YES NULL
coupon_code クーポンコード varchar(10) YES NULL
tax 消費税 int(10) YES NULL
tax_rate 消費税率 tinyint(2) YES NULL
total_price 合計金額 int(15) NO NULL
deposit_price 預り金額 int(15) NO NULL
check_status 会計ステータス tinyint(1) NO 0
returned_product_flag 返品フラグ tinyint(1) NO 0
export_flag ジャーナル出力フラグ tinyint(1) NO 0
created_at 作成日(購入日) datetime NO NULL
updated_at 更新日 int(10) datetime NO NULL

((息切れ))
なんとなく、、できました。。。
ちなみに項目を解説しますと、
ジャーナルというのは1日の売り上げを出力したものになります。
接客業を経験された方はご存知だと思うのですが、
閉店時に必ずレジ締めを行う際に1日分のレシートを出力しますので、
正常に出力されたかどうかを0:未出力(デフォルト)1:出力でデータにも残しておこうと思いました。

なんだか漏れがたくさんある気がするのでご指摘いただきたいです、、
((そもそもセルフレジに返品処理はないのでは・・・?とか…))
((データ型随分適当だな、とか…))
作りながら延々とalter tableやmodifyのコマンドを何回打ったことか…(´ཀ`)
ここまでして気づいたことがひとつあります。

…そういえば、命名規則とかデータ型とかしっかり学んでなかった。。。。

というわけで次回からはDBを学ぶ旅に出ます!!!!!!!!!!!!!

データ型の解説も次回書いて行きますね!

つづく

Shere
  • はてなブログ
  • Twitter
  • Facebook
某大型店のセルフレジの仕様を考えてみよう(その2)

Writer

  • Name

    みつたに

  • Position

    流浪のgitブランチ荒らし

  • Profile

    元書店員でした。メディアアートに憧れて転職。文化系エンジニアになりたいです!あと、spotify仲間が欲しいです!