我将启动一个系统,我们选择rails,因为它涵盖了我们所有的需求。
我们在系统的某些方面需要数据库更新的一致性,我记得我在一些官方文档中发现rails可以自动检查记录的版本,但是我已经搜索了很多,我再也找不到那些页面了。
问题如下:
- 假设在数据库的表中存在一条记录。比如,"account"。
- 假设一个名为Bob的用户找到了该记录并开始编辑它。假设用户将其名称从"收入"更改为"销售"。
- 假设在Bob编辑记录时,另一个名为Susan的用户找到了完全相同的记录并开始编辑它。假设Susan想把账户名称从"收入"改为"服务费"。 然后,Bob保存他的更改。
- Bob保存他的更改后,Susan试图保存她的更改。
此时,系统应该通知Susan,另一个用户更改了记录,她的更改不能保存。
我可以手动执行此验证,但我记得这可以由Rails自动完成。我记得,数据库表中需要进行验证的唯一要求是添加一个"版本"列,Rails将负责此操作。实际上,我不记得列是否必须称为"version"或其他什么,但事实是只有列才能启用此功能。
问题是我再也找不到那个文档了。如果有人能给我提供该文档的链接,我会很感激,因为"版本"一栏的要求是我所记得的,我不想知道我必须注意的其他事情。
好了,我已经找到了我自己问题的答案。
文档在API上,可以在这里找到:
http://api.rubyonrails.org/classes/ActiveRecord/Locking/Optimistic.html文档很短!我把必填项的名字记错了。正确的列名是'lock_version'。
感谢所有阅读我问题的人。