【问题标题】:Saving data in database for Monopoly game将数据保存在大富翁游戏的数据库中
【发布时间】:2012-11-24 15:19:21
【问题描述】:

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

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

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

【问题讨论】:

    标签: database database-design


    【解决方案1】:

    在 user 表中有一个新的列 balance 是一种冗余,因为该值可以通过对 transactions 表的查询来计算。

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

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

    【讨论】:

      猜你喜欢
      • 2012-02-22
      • 2012-02-20
      • 2015-05-10
      • 1970-01-01
      • 2021-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多