そもそも可能かどうか?という点からの質問になるので、特にコードなど載せずに質問させていただきます。
・目指したい機能 = トランザクションのコミットを発行するまでの間に、数回、クライアント画面上で処理を実行したい。その間、在庫を押さえたい
環境 PHP5.6 MySQL5.0.11
業務で使っている管理画面が、主に3つ
・工場
・倉庫
・営業
この中で、
工場は完成品の個数と倉庫への在庫情報入力、発送予定の入力などを実行
倉庫は、工場からの入荷と、顧客の元への発送記録を入力
営業は、顧客向けの配送指示を入力
この一連の流れの中で、営業が顧客から注文を受け、商品コードを入力して受注数も入力するのですが、注文数に応じてオプションをいくつか選ぶ必要があるのですが、商品コードを入れてから在庫数をいったん確認して、オプションの照会指示もかけなければならないため、1画面で必要な情報を全て引いてくることが難しく、数回に分けて画面に必要な情報を集めてきて、最後にDBに反映させる必要があります。しかも、個数によっては工場向けの指示と倉庫向けの指示が同時に行われるため、これも、1画面で処理を難しくさせるいったんでもあります。
そこで、営業が発注確定する間、同じ商品コードのモノについて排他ロックをかけざるを得ないのはokということで進めるのですが、いろいろ調べた限りでは、php の処理が完了するときに pdo も破棄されるため、画面をまたぐプーリングができなそうですが、実際に方法はないのでしょうか?
例えば、ホテルや飛行機の予約も同じだと思いますが、空室、空席をある一定時間の間、在庫情報から引き抜き、利用者情報を入力するまでの間、空きを保証するようなシステムは、自前で疑似トランザクションを仕立てているのでしょうか?
(PHP + MySQL に限ってということです)
よろしくお願い申し上げます。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/30 04:35
2017/04/30 04:38