クライアントのデータベースには、他の多くのテーブルの有用な情報を要約するスナップショットテーブルがいくつかあります(各期間の各顧客の状態など) 。外部キーを使用するスナップショットテーブルと実数値を使用するスナップショットテーブル
ただし、スナップショットテーブルには、ほとんどが元のテーブルへの外部キーが含まれています。したがって、スナップショットに関する有用な情報を得るためには、それらを対応するテーブルに複数回結合する必要があります。そして、これらの結合はしばしば非常に長くかかる。一方、データベース内のすべてのFL
列(またはクエリ内の少なくともWHERE
句の列)にインデックスを追加すると、データベースの速度が大幅に低下します。
私の質問は、外部キーの代わりに実際の値を持つスナップショットテーブルを持つ方が良いのではないでしょうか?そして、もし答えが否定的であれば、元のテーブルが更新されていればスナップショットテーブルの目的を破ることはないでしょう(例えば、 'キャンドル'と呼ばれていて、今は 'ランプ'はスナップショットが一貫していますが、ケース?)
あなた自身を尋ねる:いくつかのエントリが削除されたらどうなりますか? FKを含むスナップショットは、もはや – lokusking
@lokuskingと全く同じものになります。本当の価値があるのは理にかなっていませんか? – Disasterkid
これは意味をなさない唯一のものです。 – lokusking