gpt4 book ai didi

mysql - 如何存储用户每个月的运行余额?

转载 作者:行者123 更新时间:2023-11-29 15:43:13 25 4
gpt4 key购买 nike

我正在使用 Yii2 和 MySQL 开发一种金融计算器。我的数据库中有一个“操作”表,用于存储所有用户的所有交易(收入和成本)。在用户的仪表板中,我想显示当前的运行余额。

表“操作”:

id | user_id | sum | date_created | date_picked

date_created 是用户创建新操作时的时间戳列,date_picked 是用户为此操作选择的日期。

我知道我可以对用户的所有事务求和并显示结果,但是如果有大量事务,则会给数据库带来很大的负载。所以我需要推荐存储交易和余额的正确方法。

我想我可以创建一个表,在其中存储用户每月的余额,并使用这些值计算当前的运行余额。这是一个可能的解决方案吗?

但是,如果用户决定更改上个月交易之一的值(value),我需要重新计算本月和接下来几个月的余额吗?方法正确与否?

最佳答案

一个简单的查询

SELECT SUM(sum) FROM operations where user_id = {id}

就够了。如果您仅为一个用户执行此操作,则数据库不会有太多负载。假设您有所有用户的 100 万条记录。该查询在执行时间和资源方面都应该很好。我们有一个包含数百万个这样的事务的数据库,这需要大约 400 毫秒,而且几乎没有资源使用。

您可以创建一个表来存储每个用户的余额,但这不是必需的。它肯定会起作用,但如果我是你,我会坚持这样做。当然,如果你有数十亿的交易,那么你可能会考虑这样做,但我怀疑事情会发展到这个程度。

关于mysql - 如何存储用户每个月的运行余额?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57356269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com