たとえば、2 つのテーブルがあり、1 つはオブジェクト レコード用で、もう 1 つはこれらのオブジェクトに関するアクティビティ レコード用です。
オブジェクトが挿入または更新されるたびに、このアクティビティ テーブルに新しいレコードを挿入しています。
簡単に説明すると、アクティビティ テーブルに 4 つのフィールドがあるとします。objectId、タイプ、ステータス、および日付。
オブジェクトが更新されようとしているときに、オブジェクトの最後の状態を取得して変更を探すことを計画しています。更新値と前の値に違いがある場合は、新しい入力で値を設定します。それ以外の場合は、null に設定します。たとえば、更新プロセスでは、ユーザーはオブジェクトのステータス値のみを変更し、タイプ値は同じままにするため、タイプの null 値とステータスの新しい値を持つ新しい行を挿入します。
SELECT * FROM アクティビティ; oid タイプの状況報告日 ---------------------------------------------- 1 0 1 2009.03.05 17:58:07 1 ヌル 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 oid = 1; oid タイプの状況報告日 ---------------------------------------------- 1 3 2 2009.03.08 07:00:00
どうすればこれを達成できますか?