久しぶりにデータモデルの話題です。 ここでは、マスタの履歴管理について、いくつかのパターンを挙げて説明したいと思います。 ■履歴保存用のエンティティを追加し管理(パターン1) 商品エンティティのキーに適用開始年月日を保持し、変更があったタイミングでレコードを追加することにより商品の変更履歴を管理します。 【図1】 ①ある1レコードについて、ある時点の全ての属性の値を、履歴として管理することになります。 ②参照するトランザクション(受注明細)に履歴(商品履歴)の識別子を持たないため、履歴情報が存在する状態で、過去のマスタ情報を参照するためには、受注.受注日と商品履歴.変更日付で検索する等が必要となります。 ■履歴保存用のエンティティを追加し管理(パターン2) パターン1のバリエーションですが、履歴管理用のエンティティのキーを「履歴管理用SEQ」とします。 【図2】 この場合は、参照するトラン
![マスタの履歴管理パターン(その1) - Xupper技術サポート部のページ](https://cdn-ak-scissors.b.st-hatena.com/image/square/1aa33b7ec4af2ff8d0f3808068f9c35c17ad80c5/height=288;version=1;width=512/https%3A%2F%2Fblogimg.goo.ne.jp%2Fuser_image%2F4a%2F16%2F50db7cedf9c5e14661b3272aa6490dcb.png)