0

私は現在、MySQLを使用してすべてのリレーショナルデータを保存しているシステムで作業していますが、監査ログは長期保存のためにMongoDBドキュメントデータベースに保存されています。'projects'(システムで最大の親エンティティ)の場合、ユーザーがプロジェクトを削除し、カスケード削除を強制的に実行して、関連するすべてのデータのデータベースを効果的にクリーンアップできるようにします。(これはそれがトリッキーになるところです)

理想的には、削除されると、「プロジェクト」テーブルの単一のレコードが削除後も保持され、「アーカイブ」プロジェクトとしてフラグが付けられ、ユーザーがアーカイブプロジェクトにアクセスしようとすると、単一のページが読み込まれることがコードで認識されます。削除前のプロジェクトの存続期間中に収集されたすべてのMongoDB監査ログを表示します。

プロジェクトレコードを選択し、削除を実行し、データを再挿入し、プロジェクトに割り当てられた元のAutoInc IDを再利用することで、トランザクションでこれを機能させることができると思います。このFEELSについて何か汚いので、誰かがそれを行うためのより良い方法を見つけたかどうか知りたいです。

理想的には、元のレコードを実際に削除せずにテーブルの外部キーでカスケードイベントをトリガーする方法があれば、必要なものはありますが、そのような獣は見たことがありません。

ご協力いただきありがとうございます!

4

1 に答える 1

0

私が過去に使用したのは、アーカイブ列を追加してブール値にするだけです。したがって、ユーザーが何かを「削除」すると、フラグが切り替わるだけです。明らかに、これは、php などを使用してリクエストを処理し、ユーザーがデータベースを直接変更できない場合にのみ実行できます。これをどのように計画するかについて、さらに情報が必要です。

これをコメントに入れますが、他の質問にコメントするのに十分な評価を持っているとは思いません.

于 2012-09-26T19:46:25.220 に答える