1

特定のビジネス向けの完全なソリューションを開発しています。特定の要件があります。システムは、製品の販売を個単位で登録できる必要があります。説明させてください。たばこの 1 箱に 20 本が入っている場合、ソフトウェアは、箱全体または 2 本のたばこの販売を登録できなければなりません。 .

しかし、ソフトウェアはインベントリも管理できる必要があるため、この機能をサポートするデータベースをどのように設計すればよいかについて、私はちょっと混乱しています。

これはダミーの例です。数秒前に生成したので、恐ろしいことはわかっています。単純な例を示したかっただけです。

ダミーモデル

クライアントが特定の製品のいくつかの部分を販売したいときはいつでも、ソフトウェアがバーコードで製品をフィルタリングし、PpiecesLeftの昇順で並べ替え、から部分を減算します。結果セットのトップ製品。

これは正しい方法ですか?ProductInventory にあまりにも多くのレコードが生成されると思うので、このアプローチには不安があります。どう思いますか? どのようにしますか?

同一のバーコードと PiecesLeft を持つ製品をマージしてレコードを減らすことを考えていましたが、その方法がわかりません (おそらくトリガーを使用していますか?)

要約すると、私が欲しいのは、あなたが私に与えることができるアドバイスと、私のアプローチについての意見です。

お時間をいただきありがとうございます。

4

3 に答える 3

1

在庫について考えるとき、問題は、保管する在庫が必ずしも販売する在庫とは限らないことです。したがって、これを行う正しい方法には、ある「種類」の在庫を別の在庫に正確に変換するビジネス プロセスが必要だと思います。

保管されている在庫に 100 カートンのたばこがあるとします。誰かが入ってきて、タバコを 2 本欲しがっています。正確な在庫のために、変換はこのように見える必要があります。

First transformation
100 cartons -> 99 cartons
               10 packs

Second transformation
99 cartons
10 packs ->     9 packs
               20 cigarettes

最後に、販売はタバコ 2 本のみであるため、トランザクション終了時の在庫は次のようになります。

99 cartons
 9 packs
18 cigarettes

データベース側でそれを処理することは特に難しいことではありません。単純な古い在庫スキーマに加えて、有効な変換を記述したいくつかのテーブルが必要です。タバコのパックをビールのボトルに変換することはできません。変換を行うには、ストアド プロシージャまたはアプリケーション コードが必要です。 .

バーコードの処理は、アプリケーションに大きく依存します。地元の苗床 (植物や苗木を購入する場所) では、バーコード ラベルが剥がれたり、紛失したりすることがよくあります。レジ係には、すべてのバーコードが記載されたノートがあります。植物にバーコードがない場合、本にあるバーコードをスキャンします。

于 2013-03-10T00:57:22.450 に答える
0

まず、自然な PK (バーコード) を取り除くことをお勧めします。これは、バーコード フィールドの一意の制約である可能性があります (おそらくそうあるべきです) が、PK ではありません。

タバコの例について-アプリケーションに関する限り、ボックスは製品自体であると思います(製品テーブルの自己関係として、または別のエンティティとして実装される場合があります-selable_product独自の価格があると思います-私はブロックは 10 パックより少し安いと思います )

于 2013-03-10T00:37:56.977 に答える
0

あなたは開発していると言うcomplete solutionので、売上もデータベースに保存していると思います。

Productテーブルでは、その製品の個数を追跡できます。あなたのOrderRow(またはあなたがそれを呼んでいるものは何でも)では、販売されたピースの数を追跡します.

これを最適化し、結合の必要性を減らすには、たとえばProduct、合計個数 (販売個数) を保持する計算された永続列を追加することができます。

限られた情報で思いつくのはこれくらいです。

于 2013-03-10T00:54:10.123 に答える