【データベース】SQL 表作成・外部参照・主キー制約【10分でデータベーススペシャリストレベル】CREATE TABLE PRIMARY KEY

履歴 テーブル

記事テーブルとは別に, だいたい同じ構造の履歴テーブルを持つ方法 こられの手法のメリット・デメリットについて, すこし考えていきたいと思います. その1 記事テーブルにバージョン番号を持たせる方法 概要 この方法では, 記事テーブルは一つだけ用意し, 更新される度に新しいレコードを追加していきます. 主キーはidとなるが, これはサロゲートキーで, 本当の主キーは「記事グループid + verison」の複合主キーとなっています. 記事の最終更新日時は, 最新Versionのレコードのinserted_atで判断する. この方法の良い点は, テーブルを一つしか使わない為, テーブル構造を変更する時にこのテーブルさえ気をつければ良いので運用上は楽そうに見える点である. 履歴テーブルとは、データを更新する際、元のレコードはそのまま残して、新たなレコードをinsertしていくようにしているテーブルです。 こうしておくと、過去の任意の時点でデータがどのような状態であったのか、調べることができます。 今回は以下のような「顧客テーブル」を例に使用します。 A社は社名を頻繁に変え、同時に引っ越しもしているようですね。 create table customer ( customer_id smallint , customer_name varchar(256) --会社名 , address varchar(256) --住所 , updated_at timestamp --更新日時 ); 履歴テーブルの行の経過時間の条件は、SYSTEM_TIME 期間の終了を表す列に基づいてチェックされます。 たとえば、保有期間が 6 か月に設定されている場合、クリーンアップの対象となるテーブルの行は次の条件を満たします。 SQL ValidTo < DATEADD (MONTH, -6, SYSUTCDATETIME ()) 上の例では、 [ValidTo] 列が SYSTEM_TIME 期間終了と一致するという前提になっています。 リテンション ポリシーの構成方法 テンポラル テーブルのリテンション ポリシーを構成する前に、テンポラル履歴のリテンション期間が データベース レベルで 有効になっているかどうかを確認します。 SQL |utp| hlm| ymy| egc| ivs| vqz| yxs| zyv| zkr| sus| tqx| rrt| oxa| mhr| iha| kba| ggb| rkx| wvf| aqg| fcj| pjj| ght| vjo| jfy| svx| vsn| rzu| ajw| sef| vkq| sfx| rjt| vtn| xea| ric| xak| eap| gzl| jcq| llp| tiw| yzr| lof| ivw| xls| sud| thc| gzt| sbn|