我经常处理聚合实体或父实体,这些实体具有从其组成成员或子成员派生的属性。例如:
一个对象的
byte_count
and是从它的两个组成对象的相同属性中计算出来的,而这两个组成对象又是从它们的组成对象中计算出来的。packet_count
TcpConnection
TcpStream
TcpPacket
一个
Invoices
对象可能有一个total
基本上是其组成部分InvoiceLineItems
价格的 SUM() 的值,其中包含一些运费、折扣和税收逻辑。
在处理数百万个数据包或数百万个发票行项目(我希望!)时,这些派生属性的按需计算——无论是在视图中,还是在更常见的表示逻辑中,如报告或 Web 界面中——通常速度慢得令人无法接受。
在性能问题迫使您动手之前,您如何决定是否将派生属性“提升”到预计算字段?