• ベストアンサー

在庫管理のデータベース

こんにちは。どのカテゴリーで質問すればよいのか わからなかったのですが、データベースの仕様について 悩んでおります。 在庫の受払いのデータベースを作ろうとしています。 受、払それぞれにデータを日ごとに入力し、最終的に 下記の様な形で月ごとに合計するつもりです。 前月残|受|払|当月残 また、日々の詳細についても逐次見られる様にしたいと考えてます。 こういった場合、前月残から当月算残までを1レコードにまとめる (まとめ方もよくわかりませんが)方がよいのか、受、払それぞれの レコードから表示する時だけデータを持ってくるのがよいのか、わから ず悩んでおります。 申し訳ありませんが、ご助言頂ければ幸いです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.3

>受、払それぞれにデータを日ごとに入力 >日々の詳細についても逐次見られる様にしたい 通常ではテーブルとして *在庫テーブル(商品一覧テーブル) *取引先テーブル(販売先等ある場合) *仕入先テーブル(仕入先等ある場合) *入出庫テーブル(受入・払出を同一テーブルで行う場合:受入・返品・払出は区分などを使い入出庫テーブルで済ませる。) が必要です。 受入・返品・払出を別テーブルで管理するならば最低5つのテーブル。 でしょうか。 欲を言って入出庫テーブルのバックアップテーブルと月次更新時の在庫数を年月数と共に保存する在庫バックアップテーブル。 *1ヶ月終わったら入出庫テーブルのレコードをバックアップに移し日々使用するテーブルを軽くするため。在庫のバックアップは年月数と共に月次更新時にバックアップを取れば1商品毎の年間推移等が簡単に把握できるレコードが出来るため。 できれば欲をだした構成にした方が後々楽だと思います。 在庫テーブルの更新は月次処理で充分。 デイリー:受入・返品・払出の発生に伴い入力する。 その際、受入・返品・払出が一つのテーブルで処理していれば同一フォームで区分等の変更により入力処理できる。(入力業務の簡易化) 日々の在庫数確認は在庫テーブルの数量と入出庫テーブルのレコードを集計しリアルタイムに在庫数量を表示する。(入出庫のテーブルを先の理由等で当月分処理だけのレコードにしておけば日付での抽出をしなくてすむため集計が少しでも早くなる。) 月次:入出庫テーブルを集計し在庫テーブルのレコードと合算し在庫テーブルの数量を更新する。更新後在庫テーブルのバックアップテーブルへ各レコードを月末の日付データと共に追加してバックアップを取り在庫テーブルは翌月開始数量となる。 こんな感じでしょうか。 >前月残から当月算残までを1レコードにまとめる方がよいのか >受、払それぞれのレコードから表示する時だけデータを持ってくるのがよいのか 1レコードにまとめてもデータベースの意味がありません。データベースとして一番効率の良いテーブル(上記の様な感じのDB)の構築をするのがベストです。

ken1low
質問者

お礼

”受入・返品・払出は区分などを使い入出庫テーブルで済ませる”と 言うことですね。大変参考になりました。ありがとうございました。

その他の回答 (2)

  • ngsvx
  • ベストアンサー率49% (157/315)
回答No.2

1ヶ月分をまとめたレコードを作るかどうかは、データ量によって判断することになるでしょう。 しかしそれは性能改善ということで行うべきもので、十分な性能がでるのならば正規化の考え方からいってやらない方がいいものです。 私なら次のようにすると思います。 入出庫明細テーブル ・明細ID ・商品ID ・日時(システム導入前の切替用残高は0にしておく) ・入出庫区分 ・取消区分 ・数量(在庫が増える場合はプラス、減るならマイナスにする) こうしておけば、残高は日付で選択したレコードの「数量」の合計で計算できます。

ken1low
質問者

お礼

大変ありがとうございました。

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.1

将来、日々の詳細まで見られるようにするのであれば「件」ごとのレコードに しておくといいでしょうね。 年月日、時間、受払い区分、取引明細 でしょうか。 データベースの設計で大事な原則が3つあります。 1.1つのレコードの中に繰り返し部分を作らない。 2.同じデータを複数のレコードにダブって持たない。 3.必要な時に計算できるデータはデータベースに持たない。 理由は、1はデータ抽出が難しい。2,3はデータ修正をかけたときに矛盾を 発生する恐れがある。またデータ修正が簡単にできる。等の理由です。 ということで、設計の指針は 1.取引レコード、需要家マスタ、商品マスタ・・・と分ける。 2.1か月分を1レコードにまとめることなどはしない。 ということになりましょうか。 なお、詳しいことは「データベース 正規化」でお調べになるといいでしょう。 それと、データベースでどんなことが出来るかは「SQL」「クエリー」等で 検索してみてください。

ken1low
質問者

お礼

データベース 正規化で調べたところいろいろとありました。 大変ありがとうございました。

関連するQ&A

  • エクセルでの商品管理データベース作成

    エクセルで商品管理のデータベース作成にチャレンジしようと思っています。(vista、excel2007の環境です) 「商品データベース.xls」と「当月.xls」という2つのブックを作成し、「商品データベース.xls」には下記のようにし常に新しい商品が入ったら追加をしていきます。 入力のデータはこんな感じです↓ 商品ID 業者NO 科目 品目 単価 AA-001 スズキ100 文具 鉛筆 100 AA-002 スズキ200 文具 ノート 200 BB-001 タナカ100 食品 卵 100 BB-002 タナカ200 食品 チーズ 200 CC-001 サトウ100 衣類 シャツ 100 CC-002 サトウ200 衣類 スーツ 200 これを「当月.xls」という別のブックに、商品IDをキーにしてデータを抽出したいのです。 抽出したデータはこんな感じです↓ 商品ID 業者NO 科目 品目 単価 前月残 当月残 AA-001 スズキ100 文具 鉛筆 100 50 30 BB-001 タナカ100 食品 卵 100 40 20 CC-001 サトウ100 衣類 シャツ 100 30 10 前月残と当月残のセルのデータは、手入力します。 本当はデータベースのソフトを購入したいのですが、会社から許可が下りずなんとかエクセルでできる方法がないか調べています。 また、抽出したデータに「当月.xls」のデータにオートフィルタをかけてデータを絞り込むことは可能でしょうか? どなたか、教えてください!!お願いします!!

  • ファイルメーカーPro5で在庫の管理をしたいのですが・・・

    ファイルメーカーproで在庫管理をしたいと思っています。 商品名と数量と区分みたいなもので、月別に管理したいので前月残(月末の棚卸の数)をまず始めに入れておいて毎日出荷があった場合と入荷があった場合は新しいレコードに入力して管理していこうと思っています。それを毎日在庫が見れるようにしたいのです。前月残に入荷があった場合は+(プラス)して。出荷があった場合は-(マイナス)して商品別に日々の在庫が一覧で出てくるようにしたいです。 欲を言えば、画面上で商品別に前日残と当日入荷数と当日出荷数が出てくれば尚良いです。        商品名        前日残  本日入荷  本日出荷  在庫 例えば リップスティック●●●    3     1      1    3 どのように管理したら良いですか?計算式で組みこむのが良いと思いますがいまいち思いつきません。 宜しくお願いします。画期的なものを作りたいです。

  • 助けてください!!データベースになると思うのですが!

    VB6を使い、データベースを作らなければならなくなりました。  仕様は、ローカルのファイルサーバを使い20人ほどでデータを共有し使うというものです。プログラムは、商品名をコンボボックスに入れておき、選択すると在庫状況や金額がわかるようにしたいのが一つです。まだあるのですがとりあえずこれだけでも教えてください。  ちなみにデータベースは初心者です!!  参考ページとかでもいいので教えてください。お願いします。

  • 計算結果の反映

    お世話になります。 上手く説明できるかどうか。 A列に日付 B列に収入 C列に支出 D列に残高 とします。 日々、入力していきます。 日々、残高を表示させます。 当月末の残高が出ました。 その残高を翌月の前月残高として始めたいのです。 月ごとにシートを増やしていっても、必ず当月残が翌月の前月残として反映させる計算式がありますか。

  • エクセルVBとアクセスでの在庫管理

    おはようございます。 お世話になります。 エクセルVBとアクセスでの在庫管理をしたと考えています。 この質問では仕様の詳細ではなく、もっと手前の段階の疑問を ご教示いただきたいと思っています。 ●背景 日々手作業での在庫の管理に限界を感じ、商品が売れるたびに 簡単に在庫消込を行いたいと考えているが、ネットショップには登録していない 商品も在庫管理する必要があり、ネットショップへの登録は手間が大きいし 利点がすくないので選ぶつもりがありません。 そこで、本日から一気に全在庫を数えていくつもりですが、それで固まった在庫数を 今後は売れるたびにエクセル&アクセスで管理したいと考えています。 ●目的 Office2010のエクセルとアクセスを使って在庫を管理する。 実際の在庫自体はアクセスに入れておき、エクセルはコマンドボタンなどがあるので あくまで各スタッフのユーザビリティ向上のために(簡単に行えるように)用意する。 ※アクセスは日々ネットショップの商品管理に使っているのである程度の操作は できますが、在庫消込用のVB画面のようなものを用意できるのかなどは不明な状態です。 ◎質問したいこと 1.エクセルとアクセスで連動して管理することは可能ですか? 2.世の中には在庫管理用のソフトがあると思います。費用削減のために自前で   今回のように作りたいなと思っていますが、どう思われますか?   例)データ紛失の恐れがあるので危険やめたほうがよい   例)非常に安価またはフリーソフトの在庫管理システムがある   例)上記ソフトで実現するのは非常に負荷が高い   などなど… この質問では詳しいことは述べませんし、おおまかに実現したい機能は以下です。 商品番号、カラー、サイズを打ち込める画面的なものをエクセルに用意する。 そこにデータを打ち込むと、対象候補のレコードを検索して結果を表示する。 その中から対象のレコードを選択して、更新したい在庫数に変更する。 更新ボタンを押すとアクセス側にレコード更新に向かい、処理を完了する。 です。 プログラム経験はVB・SQLはありますが、VBAはありません。 なのでエクセル&アクセスでこの機能を実現するのがどれくらい大変かまたは簡単か わかっていません。 この質問で「大して大変な機能ではないので作って管理してもいいんじゃない?」という回答を頂けるようなら、その機能の実装についても 別の質問を用意してアドバイス頂きたいと考えています。 アドバイス頂いた中でわからない部分についてはググったり試行錯誤したりはする覚悟がありますが、本を用意して新しい概念や知識を入れないと作れないような場合は そこまでする時間がないので諦めようと思っています。 以上を踏まえて、ご教示いただければと思います。 (以上といっても私の知識がどの程度なのかわかりづらいと思うので アドバイスしづらいかもしれませんが、上記の説明内容でおおまかにどれくらい わかっていないのかは伝わったら幸いと思っています。) よろしくお願いいたします。

  • Accessで在庫管理をする際の日付の扱いについて

    いつも大変お世話になっております。m(_ _)m Accessで新規データベースを作成している最中です。 テーブルの作りを簡単に説明すると、 (1)「入庫受付」テーブルがあって、そこには、製品名・数量・入庫受付日等の情報が入っています。 (2)「出庫処理」テーブルがあって、そこにも、製品名・数量・出庫受付日等の情報が入っています。 この2つのテーブルを、期間を指定して、「在庫表」として出力する必要があります。 たとえば、当月のデータを見たい場合は、「10月度_在庫表」として、(1)の数量はプラス・(2)の数量はマイナスで、差引きの残(在庫数)を表示します。 このような目的でテーブルを作る場合に、ご相談なんですが、(1)(2)とも「日付」を入れるフィールドは「日付/時刻型」がいいのでしょうか? 期間を指定して数量を表示したい場合などは、この欄が「テキスト型」だとうまくいかないのでしょうか? なぜ、このような質問をするかというと、「日付/時刻型」にしておくと例えば「2006/10/30」という情報を入力したいときに、定型入力が使えませんよね?定型入力に「0000\/00\/00」と指定しておいて、日付は数字だけを入力すればいいようにしたいのですが、うまくいきません。 入力の簡単さを考えると「テキスト型」にしたいのですが、後々のことを考えると、たとえ入力が面倒でも「日付/時刻型」に設定しておくべきなのでしょうか? 回答をよろしくお願いします。

  • 前月度との差異を出す場合に

    アドバイスお願いします 前月度の在庫との差異を出して実地棚卸が 正常に行われたかどうかを確認したいのですが。 前月と当月のデータをエクセルで横に並べて 引き算で差異を出してますが 新しい項目が加わった場合に 同じ項目同士での差し引きができなくなってしまいます。 そこで項目を合わせる方法はありませんか? また、同じ項目が何故か2つに分かれて 出てきてしまう場合もあって それらを一旦合計してから差異を出さないと ならない時もあります。 何か関数、その他適当な処理を教えてください。

  • MYSQLデータベースの仕様変更の問題

    データーベースのテーブルで 都道府県を記録するカラムが一つだけあり 1レコードにつき、一つだけ、長崎、東京、青森、などと 都道府県を記録できるになっています。 が、今回、1レコードにつき1つだけという仕様を改め 長崎と大阪、京都と大阪と北海道、等と、 1レコードにつき、最大47都道府県の地域データを記録できるように したいと考えました。 そうした時、カラムを47つに増やさなければならないのでしょうか? 一般的に、このような時データベースはどのように組むのが一般的なんでしょうか?

    • ベストアンサー
    • MySQL
  • ACCESSで在庫管理を実施したい

    [やりたいこと] 在庫管理のデータベースを作りたいと思っています「未経験」。今迄は、存在するデータの管理を中心にACCESSを使ってきました。一方で、日々使用する消耗品等のストックを、タイムリーに把握できる仕組みを作りたいと感じ始めました。例えば、プリンターのインクですが、全部で6種類のインクを使用しますが、特定の色だけが不足する等が事象が発生し、ストックが全く無く困った時も有りました。そこで、まず、プリンターインクの在庫管理から始めたいと考えています。どうか、ご指導ご支援の程、宜しくお願いいたします。 [在庫管理の対象](プリンターMG6130) ・インクの6種類:ブラック大/ブラック小/シアン/マゼンタ/イエロー/グレー [管理したい事] ・入庫管理(購入数)、出庫管理(使用数)、在庫数(現在庫) 以上ですが、私にとって新しい領域でもあり「人に為(ボランティア支援)になるスキルが目標」、依頼する情報量の不足等はご理解願えればと思います。勝手て申し上げますが、ご指摘いただき宜しくお願い申し上げます。

  • データベースsheetから抽出したいデータをコピーするには?

    現在、EXCELファイルで1つのワークシートをDB(データーベース)として日々の受払いを管理番号を付して入力していき、同ファイルの2つめに抽出用の様式を設けて、そのシートに管理番号で指定したデーターを様式に従った形で転記できたらと考えています。(管理番号で指定したデータは複数行・列になることもあります。) この場合でマクロを組むとしたらどのように組めばよいのでしょうか。 マクロの記録機能などでやっては見たもののわかりません。教えていただけないでしょうか。 因みに初心者です。