Php 处理多用户(开具发票)

Php 处理多用户(开具发票),php,sql,multi-user,Php,Sql,Multi User,处理多用户 要求: 我有一个应用程序(mysql php jquery),用户可以: 检查记录并更新某些字段 通过选择订单开具发票 问题: 问题是同一时间段内不应开具两次发票。此外,一个字段不应由两个或多个用户同时更新 可能的解决办法: 更新表时锁定表,如果用户执行操作,则通知并重新加载 实现锁定系统,即当用户执行某些操作时,锁定其他用户执行的操作 查找“乐观锁定”-基本上意味着添加一个版本属性,并将其传回,并使用更新增加它,以确保没有其他人先到达那里。如果N个用户基于同一版本尝试相同的操作,

处理多用户

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

  • 检查记录并更新某些字段
  • 通过选择订单开具发票 问题: 问题是同一时间段内不应开具两次发票。此外,一个字段不应由两个或多个用户同时更新

    可能的解决办法:

  • 更新表时锁定表,如果用户执行操作,则通知并重新加载
  • 实现锁定系统,即当用户执行某些操作时,锁定其他用户执行的操作

  • 查找“乐观锁定”-基本上意味着添加一个版本属性,并将其传回,并使用更新增加它,以确保没有其他人先到达那里。如果N个用户基于同一版本尝试相同的操作,则一个用户获胜,其他用户则失败。查找“乐观锁定”基本上意味着添加一个版本属性,并将其传回,然后用更新将其递增,以确保没有其他人先到达。如果N个用户基于同一版本尝试相同的操作,则一个用户获胜,其他用户则失败。这对于各种情况来说都很简单。

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


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

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


    可以对行使用时间戳。阅读带有其他信息的时间戳,保存前检查当前时间戳(行数)是否比您拥有的时间戳新。通过这种方式,您可以最大限度地减少对这一部分的锁定,比较时间戳,并在第一个到达时进行更新。

    谢谢大家。我们将研究两个选项:1乐观锁定()和时间戳方法

    谢谢你们两位。我们将研究两个选项:1乐观锁定()和时间戳方法

    这听起来像是RoR的完美应用。如果你已经不太致力于你的代码库,你可能想考虑切换。这听起来像是ROR的完美应用。如果你已经不太致力于你的代码库,你可能想考虑切换。