2011-02-01 64 views
0

正如标题所述,我怎样才能阻止两个预约同一预约时间的用户。我该如何阻止两个预约同一预约时间的人

例如,两个用户在日志中记录,他们都可以看到1pm的预约可用。他们都试图预约自己进入预约时间。

我该如何阻止这种情况发生,并确保只有一个用户可以预订,然后刷新屏幕以显示下一个可用预订时间给其他用户。

谢谢。

+4

如果有人告诉你,会你接受他们的答案? – sasfrog 2011-02-01 09:30:27

回答

3

这是一个相当经典的用例。您只需在特定时间显示预约计划即可。这可以保持不变,或者您可以设置一个定期流程(例如,每五秒钟)以使用新信息更新计划。

然后,当用户/操作员决定预订一个空闲时间段时,它会尝试执行(原子)更新,如果其他人滑入(使用主键或其他唯一约束),将会失败。更新操作的原子性保证只有一个人可以预订时隙。如果更新有效,瞧,你有你的时间预订。

如果失败,请通知用户该事实,然后加载新的预约计划。

冲洗并重复,直到用户预订或他们漫步,心怀不满。

0

我不认为这是最佳的。你为什么不选择第一次点击/首次投放模式? 如果您有10个或更多用户查看同一页面,可能会发生什么情况?查看页面的用户并不意味着他会点击一个时间段。因此,恕我直言,等待用户真正点击,然后最终通知其他用户他们正在查看的时间段已被预订(如果有人在回答问题时有人回答问题时发生StackOverFlow)