「元に戻す」または「ロールバック」タイプのシナリオをコーディングしようとしています。私の一部は、これを複雑にしすぎていると考えており、以前に解決されたに違いありません。
背景: 私は製品 (例: 本) を持っています。製品には 20 のフィールドがあります。製品にはメディア タイプ (PDF、ハードコピー、EPUB) があり、各メディア タイプには複数の価格 (価格、場所、つまりヨーロッパ、アジア、アメリカ) があります。
以前の質問を見ると、memento パターンが最も近いようですが、マルチ レベルを行う方法がわかりません。
例:変更 1 - 製品「Coding for Dummies」を作成します。これはハードコピーで入手でき、ヨーロッパでは 100 ドル、アジアでは 75 ドルで入手できます。
変更 2 - ヨーロッパのハードコピーの価格を $90 に変更します。PDF を追加すると、ヨーロッパで 90 ドル、アジアで 75 ドルかかります
変更 3 - ハードコピー レコードを削除する
変更 3 は間違いでした。変更 2 にロールバックしたいと思います。
以前の質問を見ると 、Mementoパターンが最も近いようですが、非常に多くのデータを複製します。つまり、変更 2 と 3 では、製品、メディア、および価格を繰り返しています。
私が使用しているデータセットには、ほぼ 1,000,000 個の製品があります。(上記の例は単純化されています)実際には、Product には約 50 フィールド、Media Type には約 15 フィールドがあります。
より良い方法はありますか?