1

多くのユーザーが使用する商用アプリを作成しています。ユーザーはログインする必要があり、そこでシステムはアクセスできるフォームを取得します。

今、私は彼が行うすべての行動を記録する必要があります. すべてのアクションとは、エンティティで行われるすべての AMD (追加 - 変更 - 削除) を意味します。また、彼が変更/追加/削除したフィールドとその値をログに記録したいと思います。(念のため、エンティティ フレームワーク 4 を使用しています)

バージョン管理に似た実装を考えていました。

私がこれを行うことだと思ったのは:

ここに画像の説明を入力

ユーザーがいくつかの重要なエンティティで AMD を実行するたびに、ログ エントリを追加します。そのログ エントリには、保存しているエンティティのタイプに関連する id_entity_type があります。(例: クライアント、ローン、銀行など)。すべてのタイプは Entity_type に保存されます。正しいエンティティを探すために、どの種類のエンティティを使用しているかを C# で確認する必要があります。id_entity は、そのエンティティの ID です。id_action_type は、ユーザーが行ったアクションの種類です (例: "CREATE" / "UPDATE / "DELETE") id_user はユーザーに関連しています.

値は、その時点でのエンティティのすべてのフィールドと値を含むテキストです。次に例を示します。

エンティティ クライアント:

  • 名前:ジョン
  • 姓 : ドウ
  • 住所:Oak st 123
  • 都市 : ブエノスアイレス
  • 国 : アルゼンチン

次に、別のログ エントリで、別のユーザーが国を USA に更新します。

  • 名前:ジョン
  • 姓 : ドウ
  • 住所:Oak st 123
  • 都市 : ブエノスアイレス
  • 国:アメリカ

次に、ユーザーがエンティティの変更を確認したい場合、TextDiff (バージョン コントローラーに似ています) を通じてエンティティの経時的な変更を確認できます。

これがこれを達成するための良い方法であるかどうか、アドバイスをもらいたいです。

データベースのトリガーを使用してこのログを保存できることを知っています。私はこれについてほとんど知りませんが、私が持っているすべてのエンティティに対してログ テーブルが必要になると思います。

誰かがこれを行う良い方法を知っていれば、私は素晴らしいでしょう。

4

0 に答える 0