私はバス用の電子チケットサイトを構築しています。私はここで問題に直面しています:ユーザーが座席番号でチケットを予約するとき、私はその座席番号でデータベースを更新しました。今度は彼が窓を閉めて予約しないとどういうことを知りたいのですか?時間の経過後に彼のセッションが満了すればよいですか?一時チケット予約
一時チケット予約
答えて
私は彼が予約を確認した後にセッションを選択しデータベースにコミットします。
@Gigiのソリューションは合理的なものですが、完全ではありません。
お客様が選択した座席は何らかの形で予約する必要があります。そうしないと、同時に訪れた別の訪問者が同じ座席を予約する可能性があります。
最初に予約したビジターに予約されている時間(たとえば10分)を設定できます。この時間中、ビジターは予約を完了することができます(つまり、支払いと配送のデータを入力します)。その時点で、彼らが表す座席がその顧客に「所属している」ため、再度解放してはならないことを示す適切なフィールドを更新します。
予約ジョブが10回以上予約されているシートを解放する(たとえば、ページビューごとに、または利用可能なシートがあるかどうか、またはcronジョブによってチェックされるたびに)削除ジョブを実行することができます分前に予約が完了していません。
これは発券や小売サイトでよく発生する問題です。ユーザーが経験することの多いジレンマは、アイテムを購入したとき(低い在庫で)、特定のシートを予約したときにのみ、リソースが使用できなくなったことを確認することです。
With購入プロセス中のリソースを追跡することに目を向けると、一時的な 'temp_transaction'データベーステーブルを実装して、コードがユーザーが予約の過程にあるかどうかを判断するために参照できる適切な習慣を実装することをお勧めします。
一時的なデータの支払い、検証、および検証が行われると、メイン 'トランザクション'テーブルへのコミットが行われ、 'リソース'(座席)テーブルが確定データで更新されます。
このアプローチを使用すると、並行トランザクションのアカウンティングと、ユーザー・アクティビティおよび/またはリソース・ステータスのポイント・イン・タイム監査が可能になります。
@CodeCasterで猶予期間を設けることをお勧めします。リソースを無期限に縛らずに(つまり販売を失うことなく)予約している間、ユーザーはリソースに優先順位を付けることができます。これは、cronを必要とせずに一時テーブルの実装で実現できます。 – venzen
- 1. PL/SQLプロシージャ・データのフリーズ(ランダムロット・チケットの予約)
- 2. デスクトップの一部を予約
- 3. 予約/予約システムdayview、時間単位の問題
- 4. 一般的なSQLエラー - 予約時の件
- 5. Firebaseを使用したチケット予約システムのJSON構造ですか?
- 6. 予約(ホテルのための)予約予約緑、古い予約赤のデータグリッド
- 7. OS開発 - 起動時のシステムメモリ予約
- 8. 一時テーブルのTSQL制約
- 9. 一時テーブルの制約
- 10. MySQL - 日付別に予約を予約
- 11. 2つの日時のチケット
- 12. シンプルシネマ予約システム
- 13. 予約データベーステーブル
- 14. PHP予約システム
- 15. レルム予約語
- 16. シアターシートの予約
- 17. アクセス予約システム
- 18. 予約エンジン| Redis
- 19. Rails予約システム
- 20. Javaホテル予約
- 21. PayPalを使用したオンラインチケット予約:複数の訪問者が同じチケットを購入するのを防ぐ
- 22. キルビル契約を一時停止する
- 23. ホテル予約システム:予約の一泊ごとに個別の価格を保管する方法は?
- 24. 一連のチケットを並べ替える
- 25. Tracチケットへの変更時にトリガアクション?
- 26. 週に予約システム
- 27. のx86アセンブリスタック予約
- 28. NHibernateの予約語
- 29. デザインインタビュー - 車予約システム
- 30. ルームの予約システムクエリ
ええと...良いアイデア。 Thanks Gigi – AssamGuy