我现在有个业务需要,就是账户余额的问题,怎么去设计这个账户余额的表呢?
简单的update更新余额显然是行不通的
如果用户在pc端,移动端操作余额,很有可能发生错误
难道必须用事务吗?
我现在有个业务需要,就是账户余额的问题,怎么去设计这个账户余额的表呢?
简单的update更新余额显然是行不通的
如果用户在pc端,移动端操作余额,很有可能发生错误
难道必须用事务吗?
事务并不是必须的,但是事务是最简单、最清晰、最方便的实现方法。你可以通过其他一些状态转换来实现对余额操作的正确性,不过整个状态转换相当复杂,比较麻烦,而且即使你弄出来这套状态转换流程,其实你无非就是自己做了个事务系统。
这个跟事务没啥关系吧,你说的应该是锁吧。其实
你要解决的问题只有一个:同步安全问题,解决方法两种:
MyBB的全称是mybboard,是一个基于PHP+MySQL搭建,功能强大,高效的开源论坛系统。 MyBB 使用了标准的论坛结构和模式,所以您的用户可以在您的论坛获得良好的用户体验。用户可以通过用户控制面板来自定义他们访问论坛的方式或者自定义他们想看到的论坛的内容,他们还可以方便地发表和答复一个主题并且标记与他们有关的主题。论坛管理员和版主可以使用MyBB的内置编辑器和版主工具等功能,控制并维
95
1.使用数据库提供的锁
每次对余额进行操作之前先对余额进行加锁(行锁,for update),然后就可以随意操作了,记得最后提交事务即可(会自动释放锁,注意MySQL不要开启自动提交事务)
2.应用程序自己提供锁
如果不管是PC端还是移动端对余额的操作都走同一个接口,那么直接在该接口中使用分离锁(针对每个用户一个锁)对需要进行余额操作的请求进行加锁即可。
如果走的不是同一个接口,那么就需要分布式锁了,redis有一个方案可提供分布式锁,可以参考Redis官方给出的一个方案:用Redis构建分布式锁
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号