我正在计划一个 Web 应用程序,它允许使用 Rails 并发访问某些表。有人对实施交易有什么建议吗?甚至有必要吗?
该应用程序将在 CentOS LAM 配置下运行。
我正在计划一个 Web 应用程序,它允许使用 Rails 并发访问某些表。有人对实施交易有什么建议吗?甚至有必要吗?
该应用程序将在 CentOS LAM 配置下运行。
我不知道事务和并发之间有很大关系。
在我看来,使用事务的主要原因是确保如果您对数据库执行多个操作,它们要么全部工作要么全部失败。有关详细信息,请参阅我的这篇博客文章。
所以换句话说,我会说不,您不必担心将事务作为解决并发情况的一种方式。(不过,我可能是错的。)
交易和并发不相关。如果您在数据库上应用多个操作(通常但不一定对多个表),如果其中任何一个操作的失败会引发某种不一致的状态 - 无论是与已经存在的数据还是如果失败的动作应该为它后面的动作建立一个必要条件(例如:如果插入新记录失败,该记录将是下一个动作插入的其他记录的父记录)。因此,在这些情况下,您需要保证仅在全部成功或未成功时应用相关操作,然后回滚所有先前执行的相关操作以返回到第一个此类操作之前存在的初始状态被处决