[PHP-users 20585]Re: 商品在庫数のタイムラグの回避

siken sin sikensin @ hotmail.com
2004年 2月 28日 (土) 00:44:43 JST


こんにちは、若林と申します。

>例えばある商品の在庫が10個だったとします。
>Aというお客さんが9個カートに入れたとします。
>すると在庫は1個のはずですがまだ決済していないので在庫表示は10個のままです。

>次にBというお客さんがその商品を2個カートに入れました。
>このお客さんもまだ決済していないので在庫表示は10個のままです。
>しかしAというお客さんが先に決済してしまいました。
>すると在庫は1個になっていますがBというお客さんのカートには2個入っていま
す。
>ここで在庫のタイムラグが出てきてしまいます。
>Bが2個買ってしまったのでは商品が足りません。
>しかし個人情報入力画面、確認画面、完了画面で在庫を再度チェックしにいき、
>足りなければエラーを出すことはできますがどうもスマートではありませんし、
>お客さんに不快感を与えてしまいます。
>
>どなたか在庫のタイムラグの問題でよいアイデアやノウハウをお持ちの方
>ご教授いただけないでしょうか。
>
>よろしくお願いいたします。
>
>MySQL:4.0.18-max(トランザクション機能使用可能)

分離レベルを serializable にしてトランザクション実行中テーブルを完全にロック
してしまえば
反復不能読取は防げますが、パフォーマンスがかなり低下してしまいますね・・・。


うーん。

#PHPから思いっきり外れてますね・・・すみません。

_________________________________________________________________
友達と24時間ホットライン「MSN メッセンジャー」、今すぐダウンロード!  
http://messenger.msn.co.jp 



PHP-users メーリングリストの案内