0

在我的应用程序(客户端 - 服务器)中,我需要编辑一些行(来自数据库),只要它们被编辑,它也不需要任何人编辑。这当然是由交易完成的。问题在于,在客户端环境中,事务是在服务器端进行管理的,因此编辑行的客户端无法直接访问事务。 (在这种情况下,我正在使用PHP,但认为其他技术也采用了相同的方法)。所以我需要保持事务处于打开状态(保持行锁定以便编辑),直到客户端完成编辑。 在PHP中,持久连接不会有帮助,因为它们可以与位于与上述客户端位于同一主机中的其他客户端断开。你对我的场景有任何想法吗?客户端 - 服务器方法中的持久事务

谢谢。

回答

1

通常这种情况是通过您直接在对象上设置的商业锁处理的,或者是在对象的父级上设置的。

添加一列这样的“inedition”你设置为编辑真当用户要求,并设置为false,当用户验证/取消其编辑。

要知道,有些用户的交易可能你解开行之前就完了,所以你可能需要:

  • 要么解锁行
  • ,无论是从functionnal屏幕的周期性治疗用户或管理员可以解锁锁定的行。

编辑: 只要您不想依赖数据库特定功能,例如Oracle“Select for update”,就可以使用这种解决方案。在Java中,EJB statefull bean可以保持对从UI到数据库的事务的引用。根据数据库的不同,可能存在使用PHP for Oracle或其他数据库特定功能的解决方案。