ショッピングカート

WBOY
リリース: 2016-06-23 14:03:23
オリジナル
992 人が閲覧しました

ショッピング カートの問題: 特定の商品が最後の 1 つになりました。複数のユーザーが同時にそれを発見し、同時に注文しました。それが複数回購入されないようにするにはどうすればよいですか?


ディスカッション(解決策)への返信

同時に、それは0.1ミリ秒までの精度であり、確率は高くありません。

12306を参照してください。チケットがある場合は「ショッピングカートに追加」をクリックできますが、支払いを待っている場合は「チケットが不足しています」というメッセージが表示されます。もちろん、そのキュー機能は必要ありません。 。

支払い時ではなく、注文生成時であるべきです

キューイング、トランザクションロック

トランザクション処理には、mysql の場合は innodb を使用してください

注文する際は、倉庫の在庫を確認してください。ただショッピングカートに追加するだけではありません
注文は契約に相当しますが、単一の注文を当事者 B が破棄することもできます (チェックアウトせずに、何ができますか?)

ご注文の際は、倉庫の在庫を確認する必要があり、単純なショッピングカートではありません
注文は契約に相当しますが、単一の注文を破ることもできます。当事者Bによるアップ(解決しないだけで、何ができますか?)

小言が言った状況は現実に存在しますが、このトピックはテクノロジーとは何の関係もありませんが、私自身の感情について話せますか??タオバオでは、注文後に在庫が足りないと言われ、別の選択をするか注文をキャンセルするしかないことがよくありますが、これは交渉がメインです。たとえそれが法的レベルであっても、特にデポジットがない場合、購入者には何のメリットもありません
しかし、注文後、商品を供給することはできず、販売者は同様のことを行います。保証金の何倍もの賠償金など、法的レベルで損失を被る可能性があります

私の意見 はい、中国では一方的な契約違反を追及するのは難しいですが(これは売買のどちらの当事者にも当てはまります)、契約を締結すべきではありません。自分自身が赤字の状況に陥ることになります
悪質な注文(昨年のタオバオ事件など)については、別の側面から解決する必要があります

そのため、注文時には倉庫の在庫を確認する必要があり、製品には「注文済み」属性も必要です

このように苦しむのは販売者です。注文した人はチェックアウトせず、必要な人はそれを購入できず、他の店に頼ることができません

12306 と同じように、チケットはなく、電車の空席率は依然として非常に高いと言われています

注文した人はチェックアウトしません。12306と同じように時間を設定することも、事前にテキストメッセージや電子メールのリマインダーを送信することもできます、その後、管理者はバックグラウンド注文の時間をキャンセルできます。これにより、注文者が注文を確認するためにクリックしたときに明確なプロンプトが表示されます。

発注済みだがチェックアウトが確認されていない注文の製品情報を保存するための一時テーブルがデータベースに存在する必要があります。注文者が注文を確認したら、まず販売された製品の数 + 一時テーブル内の製品の数を決定します。テーブル + 注文者の記入数の合計が製品の倉庫の合計数より大きいか? 合計以下の場合、注文者は、商品を配置するときに一時テーブルにレコードを追加します。注文が正常に完了すると、プロンプトが表示されます。注文が決済された後、一時テーブルの商品レコードを削除できます。

また、チェックアウト後に一時テーブルのレコードを削除して在庫を減算し、商品数を変更する必要はありません。商品の販売数を上記で設定する必要はありません。一時テーブル + 注文者が選択した製品の数、およびそれが製品の残りの倉庫の総数より大きいかどうか。一般的な実装原則は次のとおりです。この原則に従って、複数の実装アイデアを変更できます。購入者に明確でフレンドリーなヒントを与えることも重要です。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート