用户可以选择一个酒店房间,那个房间会pending10分钟,如果用户完成了预订那家酒店就不再出现,如果超过10分钟没有完成预订,那这个预订会失败。别人也可以预订它。
这跟电影订票系统完全是一样的,只是把电影院的座位换成了酒店的房间。
我们同样在数据库中存好 last_update_time 和 status,在 lazy update 的情况下,如果读取到 status == pending 并且 last_update_time 超过10分钟,就认为 status == available
但我觉得和电影票还是有区别的,比如我选中一间房间想订7/1-7/5,别人也想订这间房但是是7/10-7/20,这样的话别人应该也可以看见这间房。
我们这里说的酒店的房间具体一点说是指酒店某一天的一间房间。每次选择房间的时候,会把这个房间的这几天的availability变成pending,直到完成付款,变成 unavaiable,或者超时重新认为是 available.