如何确保门票不会超过允许的数量出售?

时间:2018-11-29 18:23:35

标签: c# mysql .net-core entity-framework-core e-commerce

出售门票的公司如何保证不再出售门票?

例如,您有40个可用商品并售出了39个,同时有2个人开始购买,两个人都将获得该票可用的信息,但是一旦一个人完成购买,另一个人仍然会有具有可用票证和购买信息的虚假信息将不会被阻止。

如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

一旦一个人进入工作流程进行购买,请将该票证标记为不可用(某种到期时间,可能是20分钟),以便其他购物者也无法购买该票证。如果第二位购物者试图进入购买流程,请告诉他们该票不再可用。

“进入购买工作流程”定义为“关键部分”,一次只能允许一个人进入。两个人不可能同时索取最后一张可用的票。

当第一个人进行购买时,请永久减少可用票证。如果第一人称取消购买或放弃工作流程,则将保留的票证释放回可用池中。

答案 1 :(得分:0)

不确定在数据库端还是c#端希望获得什么样的答案。 在任何情况下,c#端都应该非常简单,看起来像:

 private void Order_bt_Click(object sender, RoutedEventArgs e)
    {

        DataTable data = ReadDataFromDB();

        if (data.Rows.Count <= 40)
        {
            // reserve the ticket to a person
        }
        else
        {
            MessageBox.Show("Sorry, the show is sold out");
        }

    }