<HOME  <お願い事項  <Access2000 TOP   <Access97 TOP   <サイト内検索
 MS-Access2002 なりきりデータベース設計
  1 2 3 4 5



漕げよマイケル 4

さて・・・それでは、もう少し時間を進めてみましょうか。

マイケルはできるだけたくさんの木の実を集めるべく、こまめに山に出かけていきます。
でも・・・。今日はいったいどれくらいの数の木の実を拾っておけば間に合うでしょう。
あんまり余分にストックしておけないんですよね。倉庫狭いので・・・。
なるべくなら、昨日売れた数だけ補充できるようにしていきたいんですよね・・・。
あるいは、金曜日とか、たくさん売れそうな日だけ余分にストックするとか、ちょっと計画的に仕入をやっていきたいなぁなんて生意気なことを考えています。
まあ、仕入の数は、最終的にはマイケルが決めればいいことですし、そんなにたくさん拾えない日もあるでしょうから、あくまでも「仕入の目安」にするくらいの感じですけどね。



今のところ、マイケルのお店を取り巻く情報のかたまりは、こんな感じになってます。
これに何か情報を加えることで、「現在庫数の把握」ができるようにしたいんですけど、どうしたらいいでしょう。

まず、「昨日売れた数」は、「売上一覧」の中から調べることができます。
日の日付の売上データだけ取り出して、商品別に集計すればいいですよね。その数字を、仕入の目安にします。

今、倉庫にストックしている数と、お店に並べている数を把握しておく必要がありますね。これは、マイケルが数えないとなりません。
これを、「在庫数」と考えます。
毎日、山から拾ってきた木の実の数を数えて、これを「仕入数」とします。
「在庫数」に「仕入数」を足したものが、その時点での「現在庫数」です。

開店時間になりました。
お客さんが来ます。1個売れた、5個売れた、10個売れた・・・今日も大繁盛です。

在庫の把握の仕方はいろいろな方法があります。
なので、なかなか一様にはいかないんですが、考慮すべき点は、「仕入」と「売上」はシンクロしないものという点です。
仕入にあわせてお客さんがくるわけでもないし、タイミングよく仕入に行けるわけでもない。
仕入は仕入で行われ、売上は売上で数字が動く。で、結果、現在庫数というものがある。

表計算ソフトのイメージで、上の表のように、売り上げたり仕入れたりするたびに常に現在庫数を計算しなおして書き込んでいくのもひとつの手ですが、基準となる「在庫数」を決めてやれば、「仕入数」と「売上数」を足し引きすることで現在庫数を把握できます。
それに、たまには・・・うまいこと数字を把握することができなくて、実際の在庫数とデータに若干の食い違いが生じてしまったりするかも、しれません。倉庫の中の様子や、店頭に並べている商品の検品もかねて、たまに、実際の商品の数を数えなおしてチェックすることも必要かなぁと思っています。

「棚卸」・・・みたいなもんですかね。
棚卸みたいなことは、毎日閉店後にやってその都度「在庫数」を最新のものに書き換えてもいいし、一週間ごとにやってもいいし、季節ごととか、半年に一度とか、1年に一度、とか。基準となる「在庫数」の計算をしたら(要は棚卸が終わったら)、その後の仕入数と売上数を足し引きしなくてはならないので、とにかくきちんとルールを決めておかないとならないですよね。どういうサイクルで棚卸をするか、どういうサイクルで「在庫数」を書き換えていくか、は、マイケルが決めればいいことです。



表計算ソフトに慣れている人からすると、セルに関数埋め込んだりして常に「計算結果を表示させる」ことを考えてしまうかもしれません。こういう場合、常に常に在庫数をテーブルに書き込むやり方ばかり頭に浮かんでしまう人も少なくないんですが、データベースはもっと流動的というか、柔軟にデータを取り出すためのもんだと考えてください。
テーブルには不変的なデータのみ蓄積します。

変動していくデータは、テーブルからデータを取り出して計算させて出します。主にクエリを作りますね。イヤなら作らなくてもいいですけど。
でも、MS-Access使っててクエリを使いたくないというのはどういう了見なのだ???と思いますよ。わたしは。まったくもって。
前にお話した「リレーショナルデータベースの基本」を思い出してください。
「合理的で無駄のないデータ管理(コンピュータにとって)」が基本です。

   ・お客さんがクヌギ1個買ってったら、売上のデータを入力するときにいっしょに、在庫数から1引いて、上書きしておく
   ・お客さんが1日に200人来たとしたら、在庫数の上書きを200回行うことになる。


リレーショナルデータベースの基本精神としては、テーブルのデータを何度も何度も上書き上書きしなくても済むような方法を、まず、考えるべきでしょう。
もちろん、やむをえないときは仕方がないですよ。しょっちゅうしょっちゅうテーブルのデータを更新更新していかないとならない場合も多々あります。ただそれは、人間側の都合であって、リレーショナルデータベース側からすると、非常に非効率なデータ管理方法ということになります。まあそれなりに苦労して仕組みを作らないと・・ならない・・・と、考えてください。



わー・・・

たかがマイケルの店のデータなのに、結構複雑になってきちゃいましたね。

在庫に関しては、基準となる「棚卸後の在庫数」を「商品一覧」の各箇所に書き留めておき、ここに、棚卸以後の仕入数を足し、棚卸以後の売上数を引き算して、現在庫を出す工夫ができたらベストかなーと思います。