常に優れた方法はありますか?
いいえ。しかし、一般的には、それが機能しなくなるまで、最も単純な解決策を使い続けてください。この場合の最も簡単な解決策は、必要になるたびに派生フィールドを計算することです。
または、そうでない場合は、テーブルのサイズに依存すると思います。
はい。そして、挿入の数対読み取りの数。そして、日付が単調に増加しているかどうか。また、システムとその要件のスペース(メモリ/ディスク)と時間(処理能力)のトレードオフ。そして、おそらく他にもたくさんあります。
2つの方法を等しくするおおよそのサイズはどれくらいですか?
紐の長さはどれくらいですか?それに答えるには他の変数が多すぎます。
繰り返すには:他の方法で強制されるまで、単純なままにします。キャッシュされた値を維持すると、複雑さとコーナーケースが発生します。トランザクションの境界は何ですか?新しい行を追加するとどうなりますか?これにより、影響を受ける行を検出して更新するための後続のトランザクションがトリガーされると考えられます。その後、元のトランザクションをロールバックするとどうなりますか?
それはもっと多くの論理です。うまくいかない可能性がはるかに高くなります。あなたがそうするのを見つけるまで、 YAGNIに固執してください。
hth。