は、オブジェクトレコードとアクティビティレコードの2つのテーブルを持っています。最後の状態情報を取得するためのmssqlビューの作成方法
私はオブジェクトを挿入または更新するたびにこのアクティビティテーブルに新しいレコードを挿入します。
単純な方法でそれを伝えるために、私はアクティビティテーブルに4つのフィールドがあると仮定します。 objectId、タイプ、ステータス、および日付。
オブジェクトが更新されようとしているとき、私はオブジェクトの最後の状態を取得して変更を探します。更新値と前の値との間に差がある場合は、新しい入力で値を設定します。そうでない場合はnullに設定します。たとえば、更新プロセスでは、ユーザーはオブジェクトのステータス値を変更するだけですが、タイプ値は同じであるため、タイプのnull値とステータスの新しい値を持つ新しいローを挿入します。
SELECT * FROM Activity; oid type status date ----------------------------------------- 1 0 1 2009.03.05 17:58:07 1 null 2 2009.03.06 07:00:00 1 1 null 2009.03.07 20:18:07 1 3 null 2009.03.08 07:00:00
ので、私は
SELECT * FROM ObjectStateView Where oid = 1; oid type status date ----------------------------------------- 1 3 2 2009.03.08 07:00:00
どのように私はthis_を達成しない、私は私のようなオブジェクトの現在の状態指示するビューを作成する必要がありますか?
タイプ、ステータス、および日付は厳密に単調である(常に増分します)。または、最新のレコードを作成するために日付を使用できますか?そうでない場合は、十分な情報がありません – gbn
型とステータスの算術値は重要ではなく、実際にはいくつかの列挙型を参照します。しかし、はい、日付は常に増分されます – koraytaylan