2

データベースの履歴を追跡するにはどうすればよいですか? 私はそれをほぼ完全に統計目的で使用します。たとえば、データベースにクエリを実行して現在の顧客数を調べるのは簡単ですが、先月の顧客数と現在の顧客数を比較したい場合はどうすればよいでしょうか?

この情報を追跡するために別のテーブルが必要だと思いますが、それを行う標準的な方法があるかどうか疑問に思っていましたか?

私が考えているのは、次のようなものです。

id table_name column row_id value valid_from valid_to

valid_from はデータが挿入された日付、valid_to はデータがデータベースで見つからなくなった日付です。

たとえば、列のステータスを持つ教師というテーブルがあります。ステータス列内で、教師は「申請中」「採用済み」「アクティブ」などになる可能性があります。あるステータスから別のステータスへの変更は、上のテーブルに保存され、valid_to 列に教師のステータスがなくなった日付が保存されます。 「採用」に対して新しい行が作成されます。そのテーブルに統計データを照会するのはかなり簡単に思えます。

しかし、これが良い方法であるかどうかは本当にわかりません。これは私が思いついたものであり、恐ろしい方法かもしれません。ヘルプ/提案をいただければ幸いです。

それが問題だとしても、私は MySQL と CakePHP を使用しています。

4

1 に答える 1