0

私は以前にこの質問をしました、そして人々は私に私の問題の解決策を与えました、しかし今私の問題は変化を持っています。データベースにroomsというテーブルができる前。hold誰かが予約をしているときに、そのユーザーのためにそれを保持するために、将来15分の時間を置くというフィールドがありました。そのユーザーが15分以内に予約を完了しない場合、部屋は再び利用可能になります。それは私の前の問題の解決策でした。

しかし、今は部屋のテーブルがありません。部屋タイプと予約テーブルしかありません。Roomtypeは、名前の価格情報部屋の数ともちろんIDフィールドを取得しました。予約テーブルには、チェックインチェックアウトroomtypeidとユーザーに関する情報が表示されます。部屋のテーブルがないので、複数のユーザーが同時に1つの部屋を予約するのを防ぐ方法がわかりません。

私の質問は、部屋のテーブルなしで競合状態を防ぐにはどうすればよいですか?質問するのがそれほど多くない場合は、解決策をsqlとphpのみにします。 これが私の前の質問へのリンクです

編集:私はこの投稿を見つけました、そしてそれが私がもう部屋のテーブルを持っていない理由です。リンク

4

1 に答える 1

2

予約テーブルに一時的な予約を追加し(一時フラグ/フィールドを使用)、15分後に予約が終了しない場合は後で削除できます。

さらに、複数のユーザーが最後の部屋を同時に予約しようとする場合は、予約のすべてのステップで空室状況を再度確認して、最後の部屋が取得されたことをユーザーに通知し、別の部屋タイプなどを提案する必要があります。

于 2012-10-24T04:55:02.517 に答える