2

リレーショナル データベースの設計に取り組んでいます。いくつかのテーブルがあり、アプリケーション レベルに複数のユーザーがいます。特定のテーブルの特定のレコードへの変更が、どのユーザーによって、いつ、どのように変更されたかを知る必要があります。ユーザーの情報を保存するためのテーブルがあり、このテーブルもこの動作に含まれます。

どのユーザーがこれらの変更を行ったかをユーザーが確認できるようにするには、SQL データベース設計でこれをどのように行う必要がありますか?

4

2 に答える 2

0

For starters you can look at sql server version tracking mechanisms (row versioning or row changes). After that you can look at sql server audit features. I think sql server audit would be the best for your needs.

On the other hand, if you want to make ad-hok versioning then YOU MUST NOT go to triggers. Imagine, you must create triggers for all tables for inserts, updates and deletes. This IS bad practice.

I think ad-hoc versioning should be avoided (degradation in performance and difficult to support) but in case it cannot be avoided, I would surely use CONTEXT_INFO in order to track current user and then I would try to create something that would read the schema of the table, I would get changes by using sql server change tracking mechanisms and store that in a tablename, changeduser, changedtime, column, prevValue, newValue style. I would not replicate each and every table for the changes.

于 2012-12-26T00:04:30.063 に答える