[解決済み] 変更履歴/監査データベーステーブルの最適なデザインは?[クローズド]
2022-08-12 07:27:34
質問
私は、異なる変更ログ/監査(何かが追加されたとき、削除されたとき、変更されたときなど)を格納するために、データベーステーブルを作成する必要があります。 (何かが追加されたとき、削除されたとき、修正されたとき、など)を格納するためにデータベーステーブルを作成する必要があります。私は特に詳細な情報を格納する必要はないので、私はラインに沿って何かを考えていました。
- id (イベントの場合)
- トリガーとなったユーザー
- イベント名
- イベントの説明
- イベントのタイムスタンプ
ここで何か見逃していませんか?もちろん、私はデザインを改善し続けることができますが、複雑にするつもりはありません(イベントの種類やそのようなもののために他のテーブルを作成することは、私の必要性のために複雑なので問題外です)。
どのように解決するのですか?
私が携わっているプロジェクトでは、監査ログも、ご指摘のような非常にミニマルなデザインから始まりました。
event ID
event date/time
event type
user ID
description
考え方は同じで、物事をシンプルにすることでした。
しかし、このミニマルなデザインでは十分でないことはすぐに明らかになりました。典型的な監査は、次のような質問に煮詰まっていたのです。
Who the heck created/updated/deleted a record
with ID=X in the table Foo and when?
そこで、このような質問に (SQL を使って) すぐに答えられるようにするために、結局、監査テーブルに 2 つのカラムを追加することにしました。
object type (or table name)
object ID
その頃、私たちの監査ログの設計は本当に安定しました (ここ数年)。
もちろん、最後の "improvement" はサロゲートキーを持つテーブルに対してのみ機能します。しかし、どうでしょう。監査する価値のあるすべてのテーブルは、そのようなキーを持っています!
関連
-
[解決済み] AndroidでSQLiteを使用する際に、並行処理の問題を回避するにはどうすればよいですか?
-
[解決済み] URLに最適なデータベースフィールドの種類
-
[解決済み] 監査ログを取得するためのデータベース設計【終了
-
[解決済み] データベース レコードを削除するかしないか
-
[解決済み] データベースにはすでにオブジェクト名が存在する
-
[解決済み] マスター・マスターとマスター・スレーブ、どちらのデータベース・アーキテクチャが良いのか?
-
[解決済み] なぜORMを使う必要があるのですか?[クローズド]
-
[解決済み] リレーショナル・データベースにおけるカタログとスキーマの違いは何ですか?
-
[解決済み] データベースに郵便番号を格納する必要があります。カラムの大きさはどのくらいにすればよいでしょうか?
-
[解決済み] SQLITE SQLダンプファイルをPOSTGRESQLに変換する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 監査ログを取得するためのデータベース設計【終了
-
[解決済み] データベース レコードを削除するかしないか
-
[解決済み] データベースにはすでにオブジェクト名が存在する
-
[解決済み] リビジョンのためのデータベース設計?
-
[解決済み] データベースの設計に外部キーは本当に必要なのか?
-
[解決済み] なぜORMを使う必要があるのですか?[クローズド]
-
[解決済み] SQLite UPSERT / UPDATE OR INSERT
-
[解決済み] リレーショナル・データベースにおけるカタログとスキーマの違いは何ですか?
-
[解決済み] データベースに郵便番号を格納する必要があります。カラムの大きさはどのくらいにすればよいでしょうか?
-
[解決済み] SQLITE SQLダンプファイルをPOSTGRESQLに変換する