这个项目是服务器端数据库中的几个数据表,甚至表中的同一条数据都要求能够同时被多个客户端程序使用和修改,而这个修改过程时间又会比较长,业务处理非常复杂,只能由人工操作。我们原来做的单机版本的程序是在对多个表的数据进行业务处理的过程中都是开的事务Transaction,当用户保存的时候再Commit,然后马上就又StartTransaction,目的是允许用户随时可以恢复上一步的业务操作。
但是现在做成网络版本的时候,一个用户开了Transaction,就会把数据表lock住,其它的用户就无法开启Transaction,就无法工作了。
如果不用Transaction,那么多个用户同时对同一条数据进行业务修改时,可能会出现问题,比如金额等数据计算错误。请问,如何解决这个矛盾?开启事务后会琐住整个数据库还是锁住相关的表,还是可以仅仅锁住相关的数据记录?(好像不同的数据库对事务的锁定处理是不同的?)