3

私は新しいアプリケーションを開始していますが、ロギングの最適な方法は何かと考えていました。データベース内の一部のテーブルには、すべての変更と、変更を行ったユーザーが記録されている必要があります。他のテーブルでは、最終変更時刻を記録するだけでよい場合があります。

以前のアプリケーションでは、これを行うためにさまざまな方法を使用しましたが、他の人が行ったことを聞きたいです。

私は次のことを試しました:

  1. 最後に編集された時刻を記録するために、「変更された」日時フィールドをテーブルに追加します。
  2. プライマリ テーブルの変更を記録するためだけにセカンダリ テーブルを追加します。セカンダリ テーブルの各行は、プライマリ テーブルで変更されたフィールドを表します。したがって、プライマリの 1 回のレコード更新で、セカンダリ テーブルに複数のレコードが作成される可能性があります。
  3. 2 番と同様のテーブルを追加しますが、3 つまたは 4 つのテーブルにわたって編集を記録し、関連するテーブルを追加のフィールドで参照します。

どのような方法を使用し、推奨しますか?

また、削除されたデータを記録する最良の方法は何ですか? ユーザーがDBからレコードを永久に削除できるという考えは決して好きではないので、通常、削除されたときにtrueに変更されるブールフィールド「deleted」があり、モデルレベルですべてのクエリから除外されます. これに関する他の提案はありますか?

最後の 1 つ.. ユーザー アクティビティを記録するための最良の方法は何ですか? 現時点では、ログイン/ログアウト/パスワードの変更などを記録するテーブルがあり、アクションが何であるかに応じて、1、2、3 などのコードを与えます。

この質問に詰め込みすぎていないことを願っています。ありがとう。

4

2 に答える 2