現在のアプリケーションでは、クライアントで作業しているimが、システムで発生したすべてのアクションの履歴を保存し、情報の以前の状態に戻る機能を提供することを要求しました。
例:私のアプリがストレージルームを処理する必要があり、各ユーザーがインベントリを追加/更新/削除/読み取り(すべてCRUD)できるとしましょう
ユーザーがアクションA1で製品P1を追加し、その情報を更新して、アクションA2でP2になり、その後P3、P4などになる場合。アプリケーションでは、ユーザーは製品のすべての進化を表示する画面と、ユーザーによって行われたすべてのアクションを表示する画面を表示します。ユーザーは特定のアクションを選択して「元に戻す」ことができます。
一見したところ、アクションについて必要なすべての情報を含むある種のアクションテーブルを保存すると思いました。元に戻してアクションを実行する必要がある場合は、コードの変更を元に戻すだけです。
私の問題は、製品が1つのテーブルに格納されていないが、いくつかのテーブルに分割されている場合(最適化/理解可能性などのため)、変更が正確にどこにあるかを把握する必要があります。
どのテーブルが影響を受けたかをアクションテーブルに表示し、それをBLに反映する必要がありますか????
より良い解決策があるはずだと私には思えます