Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 客户端之间的数据同步_Mysql_Analysis - Fatal编程技术网

Mysql 客户端之间的数据同步

Mysql 客户端之间的数据同步,mysql,analysis,Mysql,Analysis,我有一个数据库服务器(MySQL) 这是一张产品表。产品表的一个字段是剩余数量 我有几个客户(大约10个)会在下订单时查询剩余数量。一旦下了订单,剩余数量将根据订单减少 当数量较低时,我会遇到一个问题:例如,如果剩余数量为“10”,客户1正在为8个数量创建订单(订单尚未下单,但正在处理中),而客户2为5个数量下单,则下单的客户将失败 我想改进系统,这样当一个客户正在订购时,其他客户应该只显示(剩余数量-客户1订单数量)。最初我想在订单表中输入剩余数量后立即更改剩余数量,但这会在订单取消或下订单的

我有一个数据库服务器(MySQL)

这是一张产品表。产品表的一个字段是剩余数量

我有几个客户(大约10个)会在下订单时查询剩余数量。一旦下了订单,剩余数量将根据订单减少

当数量较低时,我会遇到一个问题:例如,如果剩余数量为“10”,客户1正在为8个数量创建订单(订单尚未下单,但正在处理中),而客户2为5个数量下单,则下单的客户将失败

我想改进系统,这样当一个客户正在订购时,其他客户应该只显示(剩余数量-客户1订单数量)。最初我想在订单表中输入剩余数量后立即更改剩余数量,但这会在订单取消或下订单的计算机断电/崩溃时产生问题


请给我推荐一些合适的算法来有效地处理这个问题。。无论何时订单正在进行,所有其他客户都应该只看到(剩余数量-订单进行中数量)。

您的问题中可能有一个答案:

other clients should see only the (remaining quantity - order in progress quantity).
因此,您的问题是存储“订单进行中”的数据

有些人向订单添加“确认”属性,可以将其设置为true/false以维护正确的信息。或者,您可以使用单独的结构来记录正在进行的订单,并在确认后将其移动到永久订单表中。无论哪种方式,可用库存都是,正如您所说,(库存-订单进行中数量),查询将为您提供这一信息

然后,您需要知道如何处理取消。如果取消是明确的-用户更改了他们的购物篮-很简单:删除订单。唯一尴尬的情况是订单没有完成:什么时候“订单进行中”不再是“进行中”?您可以设置订单仍在进行中的给定时间,并让用户知道,例如,“您的订单将在购物篮中保留24小时,之后将优先考虑库存中的其他客户”-或类似的内容

您的系统将使用清理过程将当前日期/时间与“订单进行中”的时间进行比较,如果订单太旧,它将被取消,或者至少暂停,以便客户续订