質問: オブジェクトの変更履歴を保存するための良い解決策は何でしょうか? データベース内のオブジェクトに対する変更を追跡する必要があります。 重要な実装は、データベース内またはアプリケーション内のトリガーによってレコードが挿入されるミラーテーブルを持つことですが、パフォーマンスに影響を与え、時間の経過とともにミラーデータベースは元のテーブルを変更する必要がある場合、メンテナンス時間が大幅に2倍になりますその変化を反映する必要がある)。 ここでの最大の要件は、データベースとアプリケーションのパフォーマンスに最小限の影響を与えることです。私の現在の優先順位は、変更をsyslog-ng over udpにダンプし、プレーンテキストファイルに保存することです。 すべての変更ログは頻繁にアクセスされるものではないので、時間の経過と共にアーカイブされても大丈夫です。しかし明らかにそのような設定で実際にデータにアクセスするのは非常に難しいです。 だから、私の質問は、少なくとも私のニーズに少なくとも部分的に合ったシステムがすでに存在していると思いますか?完全に適合するのは、データに自動的にアーカイブする(または最小限の設定を行うために必要な)UDP/ACCESSスキーマレスの追加専用データベースシステムです。 MongoDB? CouchDB? YourDB?
回答: SQLiteはどうですか?各DBは、アーカイブ時に簡単に名前を変更して移動できる独立したファイルです。ファイルの名前が変更された場合、または自動的に移動された場合は、次の挿入時にotherが作成されます。 SQLiteについての唯一の問題は、書き込みのためにファイルをブロックする必要がある同時書き込みです。 1秒間に約60件のトランザクションを処理できますが、1回のトランザクションで何千もの挿入を行うことができます( doc )。