开发票务系统的基本架构问题

时间:2013-05-24 13:15:41

标签: c# asp.net

我需要建立一个票务系统,我正在研究应用程序的架构,让它保持非常简单。我必须放一个文本框,其中将显示可用的票号,并​​在那几个moew文本框下,一般信息,然后购买按钮。 注意:票证号码必须显示在屏幕上,因为它们已与座位号码映射。 现在我被困的问题是

  1. 如果我有50张门票,并且用户打开网站,他看到1号门票可用,另一位用户打开该网站,他也看到1号门票可用,因为第一位用户尚未购买该门票。现在绝对是第一个按下购买按钮的人,他将获得该票。

  2. 如果我实现了一些锁定机制,那么如果一个用户有权访问某个故障单,那么它就不能显示给另一个用户。但是如果打开购票的用户不是出于任何原因购买,甚至没有关闭页面或者没有按下取消按钮。表示在用户执行某些操作之前将保留票证,或者我可以在几分钟后自动刷新页面,但仍然会在几分钟内保留票证。

  3. 需要一些适当的解决方案,以便我可以开始实施。

    提前致谢

2 个答案:

答案 0 :(得分:1)

我更喜欢方法#2。我已经看到了火车座位预订机制问题的实施。

锁定票证,并记住会话中的锁定。然后在会话到期时自动解锁锁定的票证。将会话配置为仅持续一分钟。

答案 1 :(得分:1)

我能想到的解决方案之一是使用帮助Windows服务。当预订的用户单击该书到故障单时,它将在数据库中使用日期时间和用户标识号进行更新。在客户端,您可以在10分钟后将javascript时间刷新或等等。同时在后台运行的Windows服务将检查仍处于挂起状态的所有预订时间超过X时间,并将更新项目到期。另一个用户的客户端将ping数据库并检查座位是否再次可用,并且您可以显示用户座位是否可用。现在,如果第一个用户尝试预订票证,您的服务器端将再次从数据库验证状态并提供需要再次选择票证的消息。您可以给出用户处理票证所需的最佳时间,例如填写表单等...