我正在开发一个人们可以通过它汇款的财务应用程序。
每个用户都可以将钱存入我们的服务中,他们可以将余额从其余额汇入其他人。 这两笔交易将影响我们申请中的余额。
我想知道,获得用户余额价值的最佳方法是什么。我应该直接将值存储在列中,并在用户进行事务时更改它,或者我应该只是从用户所做的所有事务中推断出余额值。
我已经想到的每种方法的缺点是:
直接存储值:
从其他数据推断:
我使用PHP和MySQL以及Yii2框架构建了我的应用程序。
您认为这种问题的最佳方法是什么,虽然效率很高,但也可以保持数据的完整性,并且对未来的大量数据没有问题?
谢谢。
答案 0 :(得分:1)
考虑第一种方法。
如果db是Mysql
,您可以使用MySQL的table-locking (or row-locking)
能力。在您的MySQL实例上使用InnoDB表,否则您的系统将无法完全进行ACID编译,这意味着您无法获得所需的原子性。
答案 1 :(得分:1)
结合两者。
或者:
或者: