0

Google App Engine を介して Web2Py で部屋の予約システムを作成しています。ユーザーが部屋を予約するとき、システムは、この部屋が実際に利用可能であり、直前まで誰も予約していないことを確認する必要があります。部屋が空いているかどうかを確認するためにクエリを実行してから、予約を行います。問題は、この部屋が本当にこのユーザーのものであることを確認するために、一種の「相互排除」でこの取引を行うにはどうすればよいかということです。

ありがとうございました!!:)

4

1 に答える 1

1

相互排除は既に DBMS に組み込まれているため、それを使用するだけです。例を見てみましょう。

まず、モデル内のテーブルは、部屋番号が一意になるように定義する必要があります (UNIQUE 制約を使用)。

User1 と User2 の両方が部屋を照会すると、部屋が空いているという応答が返されます。両方のユーザーが同時にその部屋の「BOOK」リクエストを送信した場合、予約機能は両方のユーザーの「BOOK」リクエストをデータベースに直接挿入する必要があります。ただし、実際に実行されるのは 1 つだけであり (UNIQUE 制約のため)、もう 1 つは DAL 例外を生成します。例外をキャッチし、「予約」リクエストが失敗したユーザーに応答して、「この部屋を一瞬で逃しただけです :-)」と応答します。

これが役に立ったことを願っています。

于 2012-12-15T12:25:54.057 に答える