gpt4 book ai didi

mysql - 在数据库中保留小计字段是个坏主意吗

转载 作者:可可西里 更新时间:2023-11-01 06:40:14 25 4
gpt4 key购买 nike

我有一个表示订单列表的 MySQL 表和一个表示与每个订单关联的发货的相关子表(有些订单有多个发货,但大多数只有一个)。

每批 cargo 都有一些费用,例如:

  • 元素成本
  • 运费
  • 处理成本
  • 税收成本

应用程序中有很多地方需要获取订单的合并信息,例如:

  • 总项目成本
  • 总运费
  • 总处理成本
  • 总税收成本
  • 总成本
  • 总付费
  • 总利润

所有这些字段都取决于相关装运表中的聚合值。此信息用于其他查询、报告、屏幕等,其中一些必须为用户快速返回数万条记录的结果。

在我看来,有一些基本的方法可以解决这个问题:

  1. 在需要时使用子查询从装运表中计算这些项目。对于需要全部或部分此信息的所有查询,这会使事情变得相当复杂。它也很慢。

  2. 创建一个将子查询公开为简单字段的 View 。这使需要它们的报告变得简单。

  3. 在订单表中添加这些字段。这些将为我提供我正在寻找的性能,但代价是在我对装运记录进行任何更改时必须复制数据并进行计算。

另一件事,我正在使用一个业务层来公开函数来获取这些数据(例如 GetOrders(filter)),我不需要每次都进行小计(或者有时只需要其中的一些),所以每次(甚至从一个 View )生成一个子查询可能不是一个好主意。

是否有任何人可以指出任何最佳实践来帮助我确定最佳设计是什么?

顺便说一句,我主要出于性能和查询简单性的原因最终选择了#3。

更新:

很快就收到了很多很好的反馈,谢谢大家。为了提供更多背景信息,显示信息的地方之一是在管理控制台上,我有一个可能很长的订单列表,需要显示每个订单的 TotalCost、TotalPaid 和 TotalProfit。

最佳答案

汇总统计数据并存储它以提高应用程序性能绝对没有错。请记住,您可能需要创建一组触发器或作业,以使汇总与您的源数据保持同步。

关于mysql - 在数据库中保留小计字段是个坏主意吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7536818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com