1

保険契約情報を格納するデータベースを設計したいと考えています。(いいえ、Healthcare.gov を構築しているわけではありません)

ポリシーは、その によって一意に記述されPolicyNumberます。他のいくつかの属性は、、、EffectiveDateおよびExpirationDate(Premiumとりわけ) です。

問題点は次のとおりです。ポリシーが作成された後、キャンセル、監査などにより変更される可能性がありますPremiumExpirationDate

私の目的のために、保険料と有効期限が書かれた時点と現在の時点を知る必要があります。ただし、EffectiveDateポリシーが作成された時点から静的なままになるような属性があります。では、正規化されたデータベースを構築してこれらすべてを取得するにはどうすればよいでしょうか?

4

1 に答える 1

0

これを行う 1 つの方法は、すべての最新情報を含む通常のポリシー テーブルを作成することです。追跡する履歴データを含む別のテーブルを作成します。タイムスタンプ情報を両方に保持したい場合がありますが、特に履歴テーブルに保持したい場合があります。アクティブな行に対して複数の履歴行が存在する可能性があるため、メイン テーブルと履歴テーブルの間に 1-M の関係を構築することをお勧めします。履歴行がないということは、変更が行われていないことを意味します。

変更が行われるたびに、ポリシー テーブルの現在の行 (または必要に応じて関連する列) が履歴テーブルにコピーされ、履歴行が保存されます。

この設計の問題点は、(クライアントがこの情報を渡すことができない限り) 何が変更されたかを把握するのに少し手間がかかり、スペースが無駄になることです。

この設計には、シンプルであり、現在のすべての情報を 1 か所に保持できるという利点があります。現在の情報は、ほとんどのシステム操作で通常アクセスするものです (推測します)。

于 2013-11-08T01:10:43.447 に答える