mysql如果只有一条数据不显示小计_mysql – 在数据库中保留小计字段是个坏主意...

我有一个

MySQL表,代表一个订单列表和一个相关的子表,代表与每个订单关联的货件(一些订单有多个货件,但大多数只有一个).

每批货物都有许多费用,例如:

> ItemCost

> ShippingCost

> HandlingCost

> TaxCost

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

> TotalItemCost

> TotalShippingCost

> TotalHandlingCost

> TotalTaxCost

> TotalCost

> TotalPaid

> TotalProfit

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

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

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

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

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

另一件事,我正在使用一个业务层来公开函数来获取这些数据(例如GetOrders(过滤器))并且我不需要每次都使用小计(或者某些时候只需要其中的一些),所以生成一个每次(即使从一个视图)子查询可能是一个坏主意.

是否有任何人可以指出我帮助我决定最佳设计的最佳实践?

顺便说一下,我最终做了#3主要是出于性能和查询简单性的原因.

更新:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值