2012-11-29 2 views
0

Google App Engine을 통해 Web2Py에서 방 예약 시스템을 만들고 있습니다. 사용자가 방을 예약 할 때 시스템에서이 방을 실제로 사용할 수 있어야하며 다른 사람이 잠시 방을 예약하지 않았는지 확인해야합니다. 방을 사용할 수 있는지 조회하도록하려면 예약하십시오. 문제는이 방이 실제로이 사용자를위한 것인지를 확인하기 위해 일종의 "상호 배제"방식으로이 거래를 수행 할 수있는 방법입니다.Google App Engine을 통한 Web2Py의 트랜잭션

감사합니다. :)

답변

1

상호 배제는 이미 DBMS에 내장되어 있으므로이를 사용해야합니다. 예를 들어 보겠습니다.

먼저 모델의 테이블은 객실 번호가 고유해야합니다 (UNIQUE 제약 조건 사용) 방식으로 정의되어야합니다.

User1과 User2가 둘 다 방을 쿼리하면 방이 비어 있다고 응답해야합니다. 두 사용자가 동시에 해당 방에 대한 "BOOK"요청을 보내면 예약 기능은 두 사용자의 "BOOK"요청을 db에 직접 삽입해야합니다. 그러나 UNIQUE 제약 때문에 실제로는 하나만 실행되고 다른 하나는 DAL 예외를 생성합니다. 예외를 잡아 'BOOK'요청이 불만 인 사용자에게 응답하여 방을 즉시 놓친 경우 :-)

호프가 도움이 되었기를 바랍니다.

+0

감사합니다. Tushar 님, 불행히도 이것은 내 사례가 아닙니다. 사용 가능한 객실 수가있는 카운터가 있으며이 카운터를 감소시켜야합니다. 내가 필요로하는 것은 그것을 "부식"방식으로 감소시키는 것이다. –

관련 문제