在过去的365天里,我需要保持客户每天的结账平衡,并根据这个余额绘制一张线图。哪个数据模型是维护此数据的首选?
MySQL,卡桑德拉还是其他数据库?
发布于 2022-05-17 07:29:40
最明显的解决方案是有一个具有关键客户端id、数据和值为结束余额的表。
问题是如何填写这些数据?你可以在一天结束时做一份跑步的工作。最大的问题是如何使系统可靠?如果作业失败并在第二天重新启动,这会提供前一天的数据吗?
解决这类问题的典型方法是使用“事件源”。这是一种奇特的说法,它需要为在平衡状态下执行的每一项操作存储记录。每个添加/扣减都应该在那里,包括客户id和日期。这些记录也可能有“结果余额”--这意味着一天中客户的最后一次操作也有期末余额。
最后,您将有交易列表,您将能够“重播”以前的事件,以获得平衡。这是你的选择,如果你想要为每个客户的每日结余的实际表-因为它可能是更便宜的查找数据,而不是每次重新计算它。
在银行业,由于这个特定的原因,每一笔交易都作为一个单独的记录存储--以便能够得到不同的报告;包括。每日期末结余。
https://stackoverflow.com/questions/72254641
复制