多くの場合、構成要素または子メンバーから派生した属性を持つ集約エンティティまたは親エンティティを扱います。例えば:
オブジェクトの
byte_count
andpacket_count
は、TcpConnection
その2つの構成オブジェクトの同じ属性から計算され、2つの構成TcpStream
オブジェクトはそれらの構成TcpPacket
オブジェクトから計算されます。Invoices
オブジェクトtotal
には、基本的にその構成要素InvoiceLineItems
の価格のSUM()であり、わずかな運賃、割引、および税金のロジックがスローされている場合があります。
数百万のパケットまたは数百万の請求済み広告申込情報を処理する場合(私が望む!)、これらの派生属性のオンデマンド計算は、VIEWで、またはより一般的にはレポートやWebインターフェイスなどのプレゼンテーションロジックで、許容できないほど遅いことがよくあります。
パフォーマンスの懸念があなたの手を強制する前に、事前に計算されたフィールドに派生属性を「プロモート」するかどうかをどのように決定しますか?