在Monopoly游戏中保存数据库中的数据

时间:2012-11-24 15:19:21

标签: database database-design

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

我有一个包含所有用户的表(userID,名称,电子邮件)以及包含所有事务的表和创建它们的用户(user1,user 2,amount)。

现在,如果我需要为每个用户提供余额,最好是保留users表中每个用户的余额并在每次进行事务时更新它,或者我应该每次从事务表中计算它时间我不会呈现它?假设这个游戏会有很多流量,那么对于10,000多个用户来说,更合理的方法是什么,每周大约有120,000多个交易呢?

1 个答案:

答案 0 :(得分:0)

在用户表中具有新的列余额是冗余,因为可以使用事务表上的查询来计算该值。

然而,DB设计过程之一是估计特定表上可能发生的读写次数。如果这个估计很高,那就是逻辑,允许简化某些读或写的结果,并在DB上有冗余,以提供网页请求的许多读取,并以较少的处理时间显示值。

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