售票公司如何保证不再售票?
例如,你有40个可用票,售出39个,2个人同时开始购买,两个人都会有该票可用的信息,但一旦一个人完成购买,另一个人仍然会有错误的信息,有票可用,并且购买不会被阻止。
如何解决这个问题?
发布于 2018-11-29 18:42:29
一旦一个人进入购买工作流,就将该门票标记为不可用(有某种类型的过期,可能是20分钟),这样其他购物者就不能同时购买该门票。如果第二个购物者试图进入购买工作流,则告诉他们该门票不再可用。
“进入采购工作流”定义为“关键区”,一次只允许一个人进入。两个人同时认领最后一张票是不可能的。
当第一个人购买时,永久减少可用门票。如果第一个人取消购买或放弃工作流,请将保留的票证释放回可用池中。
发布于 2018-11-29 18:40:02
不确定您希望在数据库端还是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");
}
}
https://stackoverflow.com/questions/53545345
复制相似问题