0

我正在通过 Google App Engine 在 Web2Py 中制作房间预订系统。当用户预订房间时,系统必须确保该房间确实可用,并且之前没有其他人预订过。为了确保我查询房间是否可用,然后我进行预订。问题是我怎样才能以一种“互斥”的方式进行交易,以确保这个房间真的是给这个用户的?

谢谢!!:)

4

1 回答 1

1

DBMS 中已经内置了互斥,所以我们只需要使用它。让我们举个例子。

首先,您在模型中的表应该以这样一种方式定义,即您的房间号应该是唯一的(使用 UNIQUE 约束)。

当 User1 和 User2 都查询房间时,他们应该得到一个回复​​说房间是空的。当两个用户同时发送该房间的“BOOK”请求时,预订功能应直接将两个用户的“BOOK”请求插入数据库。但实际上只有一个会被执行(因为 UNIQUE 约束),另一个会产生 DAL 异常。捕捉异常并回复“预订”请求不成功的用户,说你只是瞬间错过了这个房间:-)

希望这有帮助。

于 2012-12-15T12:25:54.057 回答