私が知っている恐ろしいタイトル、私は私の問題を明確にするためのより良い方法を見つけることができませんでした.
私は成功せずにSOを検索しましたが、答えがすでに出ている場合は、自由にリンクしてください。徹底的に読みます。
本の注文システムを構築しています。人々は 1 か月を通して書籍を注文し、月末には大量の注文が 1 件届きます。
注文は、次のフィールドを持つ Order テーブルに記録されます。
order_id, book_id, quantity, language, person_ordering, timestamp, month, year
注文が到着すると、次のフィールドを持つ Received テーブルに入力されます。
book_id, quantity, language
ここで、ある人が本 1 のコピーを (2) 注文し、別の人が (3) 注文したとします。そしてもう一つ(5)。(10) の合計。その後、注文が届き、7部しかありません。
私は見つけ出すスクリプト/関数を書こうとしています:
- 本のコピーを受け取る人 (先着順なので、最初に注文した人が最初に注文を処理します。
- ある人が注文を部分的にしか履行できない場合、注文テーブルを更新して (または、新しい保留中の注文テーブルが必要になる可能性がありますか?)、X の金額がまだ履行を待っていることを反映します。その後、翌月、注文日に基づいて、注文が最初に履行されます。
注文が行われたときのタイムスタンプに基づいて Orders テーブルから情報を取得して並べ替え、次に Received テーブルから情報を取得し、2 つの配列を比較して 3 つ目の配列を更新することを考えました。または、私が見逃しているより簡単な解決策があるかもしれません。
さらに情報が必要な場合は、喜んで提供します。私はこの問題を 2 日間続けて解決してきました。どんな助けでも大歓迎です。
ありがとう!