久しぶりにデータモデルの話題です。 ここでは、マスタの履歴管理について、いくつかのパターンを挙げて説明したいと思います。 ■履歴保存用のエンティティを追加し管理(パターン1) 商品エンティティのキーに適用開始年月日を保持し、変更があったタイミングでレコードを追加することにより商品の変更履歴を管理します。 【図1】 ①ある1レコードについて、ある時点の全ての属性の値を、履歴として管理することになります。 ②参照するトランザクション(受注明細)に履歴(商品履歴)の識別子を持たないため、履歴情報が存在する状態で、過去のマスタ情報を参照するためには、受注.受注日と商品履歴.変更日付で検索する等が必要となります。 ■履歴保存用のエンティティを追加し管理(パターン2) パターン1のバリエーションですが、履歴管理用のエンティティのキーを「履歴管理用SEQ」とします。 【図2】 この場合は、参照するトラン