0

假设我有一个有很多用户的应用程序(大富翁游戏),每个用户都有一个余额,他们在他们之间进行交易。

我有一个包含所有用户(用户 ID、姓名、电子邮件)的表和一个包含所有交易和进行交易的用户(用户 1、用户 2、金额)的表。

现在,如果我需要为每个用户提供余额,最好将每个用户的余额保留在用户表中并在每次进行交易时更新它,或者我应该每次从交易表中计算它我不会要介绍吗?假设这款游戏会有大量流量,那么对于 10,000+ 用户和每周 120,000+ 笔交易,更合理的做法是什么?

4

1 回答 1

0

在用户表中有一个新的列余额是一种冗余,因为可以通过对事务表的查询来计算该值。

然而,数据库设计过程之一是估计特定表上可能发生的读取和写入次数。如果该估计值很高,则可以简化某些读取或写入的结果并在数据库上具有冗余以提供网页请求的许多读取并以更少的处理时间显示值是合乎逻辑的。

在您的情况下,余额列更新可以通过事务表上的触发器来完成,该触发器计算所涉及的两个用户的余额。

于 2012-11-24T15:32:28.823 回答