【问题标题】:Select sum or updating a field for Total Balance?选择总和或更新总余额的字段?
【发布时间】:2015-08-17 08:49:37
【问题描述】:

我正在使用实体框架和 Azure Sql。

我有用户,他们在余额表上有记录。有些用户可能有 100 万条记录。在每次 http 请求之前,我需要用户的总余额。

我有两种获取用户总余额的方法:

首先: 在交易中插入余额并更新总余额字段(单独)。

transaction(
InsertBalance(amount)
Update CustomerSummary Set Totalbalance=Totalbalance+Amount
)

如果我需要总余额,我会从CustomerSummary 表中选择它。

第二:不使用任何交易直接插入余额。 如果我需要总余额,我必须通过查询得到总和。

第一种方法对于总余额是否可靠?

我可以像第一种方法一样快地获得第二种方法的总和吗?

【问题讨论】:

    标签: sql database entity-framework database-design azure-sql-database


    【解决方案1】:

    保证第二种方法是准确的 -- 如果您想要特定列的总和,没有什么比计算总和的查询更准确的了。

    维护汇总表的原因是性能。通常,此类表以以下两种方式之一进行维护:

    • 触发器
    • 包装所有数据修改操作的存储过程

    您使用insert 的示例是“应用程序端”解决方案。危险是有人可能会说余额不正确,然后直接在数据库中更改值。总数不变。

    要使其正常工作,您需要对数据库的访问进行正确控制,以确保每当amount 更改时,其所有依赖项都会更改。注意:如果您在需要时计算余额,这不是问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-18
      • 2016-06-09
      • 2013-02-18
      • 1970-01-01
      • 2015-02-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多