私は現在、MySQLを使用してすべてのリレーショナルデータを保存しているシステムで作業していますが、監査ログは長期保存のためにMongoDBドキュメントデータベースに保存されています。'projects'(システムで最大の親エンティティ)の場合、ユーザーがプロジェクトを削除し、カスケード削除を強制的に実行して、関連するすべてのデータのデータベースを効果的にクリーンアップできるようにします。(これはそれがトリッキーになるところです)
理想的には、削除されると、「プロジェクト」テーブルの単一のレコードが削除後も保持され、「アーカイブ」プロジェクトとしてフラグが付けられ、ユーザーがアーカイブプロジェクトにアクセスしようとすると、単一のページが読み込まれることがコードで認識されます。削除前のプロジェクトの存続期間中に収集されたすべてのMongoDB監査ログを表示します。
プロジェクトレコードを選択し、削除を実行し、データを再挿入し、プロジェクトに割り当てられた元のAutoInc IDを再利用することで、トランザクションでこれを機能させることができると思います。このFEELSについて何か汚いので、誰かがそれを行うためのより良い方法を見つけたかどうか知りたいです。
理想的には、元のレコードを実際に削除せずにテーブルの外部キーでカスケードイベントをトリガーする方法があれば、必要なものはありますが、そのような獣は見たことがありません。
ご協力いただきありがとうございます!