追記
不適切な質問でした。申し訳ございません。削除できないので図等を削除してこのまま残します。
前提・実現したいこと
前提
自社製品や自社型はなく、顧客からの依頼で顧客専用の製品を作ります。
生産は完全受注生産で客先から指定された本数を作って納品します。
受注の基本的な流れは2パターンです
- 新規の製品の場合
サンプル作成→製品仕様決定→注文が出る
- リピート生産
顧客から製品番号と本数で注文がでる
現状(エクセル管理)
エクセルに製品一覧シートと注文一覧シートがあります。
製品新規の場合、製品仕様が確定後、製品一覧に登録(製品番号が振られる)→注文一覧に本数と製品番号を登録(注文番号が振られる)
製品既存の場合、注文一覧に本数と製品番号を登録
工場番号と注文番号を社員が認識しています。
作成したいシステムにアクセスするのは最大7名です。
注文は新規リピート合計10~20件です。
実現したいこと
- 月別売上げの作成
サンプル段階の未確定な売上と正式受注している売上を合わせた売上予測を月ごとに集計する
(サンプル段階でどの程度の金額を想定しているかは顧客から提示されます)
- 納品本数を注文ごとに集計する
(不良品が5%くらい毎回出ます)
データベース設計で考えたこと
パターン1:現状に即したテーブル設計-サンプルテーブル 製品テーブル 注文テーブル 集計テーブル…)
現在のエクセルの構成にサンプルテーブルを追加した形
メリット
- 注文NOが主キーなので、納品のSQLが簡単そう
デメリット
- 売上げ集計がやや面倒
(月別売上げはサンプルテーブルの予測売上と注文テーブルの売上を結合して集計する)
パターン2:商談テーブル(サンプルと注文を一緒にしたテーブル) 製品テーブル 集計テーブル…
メリット
- 売上げが集計しやすい
- テーブルが1つ減るのでデータがシンプルになる
デメリット
- 注文NOを後からふる, 追加で入力する項目が増えるので、更新きちんと考えないといけなさそう
- 進捗の区分けが増える
- 注文一覧が必要な場合、WHEREで常に指定しないといけない 中間テーブルを作る?
- 納品テーブルを作っていったときに、主キーの商談IDでリレーションを考えた場合、SQLが面倒になりハードルが高そう
- 主キーではない注文NOを参照に使っていると後々エラーが起こりそう
パターン3:パターン2の商談Tのフィールドを細かくする
サンプルの予測売上と注文の売上のフィールドを分ける
進捗もサンプルと注文でフィールドを分ける
メリット
- 進捗の区分けが減るくらい
デメリット
- NULLが増える
- かえって月別売上集計が複雑になる
伺いたいこと
- どんなテーブル設計にしようと思われるかご意見を伺いたいです。
- パターン2か3にした場合、T納品でT製品を参照するための外部キーは注文Noにしてもいいのでしょうか?
- これだけ別件なのですが、顧客はよく使うので、すべてのテーブルに顧客IDいれてますが、顧客名も入れるのはいけないのでしょうか?
中間テーブルで対応されるのでしょうか?
補足情報(FW/ツールのバージョンなど)
今のところすべてエクセルで行っています。エクセルのシートをテーブルとして、エクセルでSQL実行しています。
今後おそらくはACCESSを1アカウントだけ買ってもらって、社内フォルダにファイルを置き、エクセルから実行する形になるかと思います。
サーバー用にパソコン用意したほうがいいなどあるとは思いますが、そこらへんはまた別でご相談させていただければと思います。
とりあえずどんな事ができるのかをプレゼンできるようにし、予算を確保したいです。
どうぞよろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー