0

处理多用户

要求:我有一个应用程序(mysql php jquery),用户可以:

  1. 查看记录并更新某些字段。
  2. 通过选择订单开具发票。

问题:问题是不应在同一时间段内两次开具发票。此外,一个字段不应由两个或多个用户同时更新。

可能的解决方案:

  1. 更新时锁定表,如果用户执行操作,通知并重新加载。
  2. Impliment 锁定系统,当用户执行某些操作时,它会锁定这些操作以由其他用户执行。
  3. ...
4

3 回答 3

2

查找“乐观锁定” - 基本上意味着添加版本属性并将其传回并通过更新增加它以确保没有其他人首先到达那里。如果 N 个用户尝试基于相同版本的相同操作,则一个赢,另一个输。对于各种各样的情况来说,它是快速简单的。

于 2009-08-18T15:30:16.723 回答
1

不知道这是否对您有帮助,但我首先在 .Net 的 DataTable Adapter 的上下文中阅读了这一点,该适配器跟踪自您读取数据行以来对数据行所做的更改,并在更改后发送回 db。它所做的是发送所有字段,而不仅仅是更改的字段。

您可以对行使用时间戳。阅读带有其他信息的时间戳,并在保存之前检查当前时间戳(行)是否比您拥有的新。通过这种方式,您可以将锁定最小化到这部分,比较时间戳并更新如果您是第一个到达那里的人。

于 2009-08-18T15:33:48.527 回答
0

谢谢你俩。将研究这两个选项:1 乐观锁定(http://cwiki.apache.org/CAY/optimistic-locking-explained.html)和时间戳方法。

于 2009-08-18T17:57:34.803 回答