は、私は3つのテーブルを持っている非破壊更新は、SQL Serverで財務データをバージョニング2008
製品ラインテーブルのような...
(現実には多くが、これらの3つは、私が今心配する必要はものです)ProductLineId (pk)
Name
Description
Price
Finance Event (FK)
と金融イベントテーブルのような...
EventId (pk)
Event Description
と金融取引表のような...
TransactionId (pk)
FinanceEventId (fk)
LotsOfSageReferencesAndOtherForeignKeys
売却が処理されると、財務イベントなどに基づいて取引記録が作成されます。
質問は次のとおりです。管理者の誰かが参加し、Financeイベントを変更した場合、主キーを保持したまま、イベントテーブルをバージョン管理する最善の方法を教えてください。トランザクションテーブルの
まず時系列データを扱うとき、あなたは実際の値を格納する必要がないだけでIDS:一般的に
ファイナンスイベントを変更しないでください。 financeイベントにIsActiveフィールドを置き、人々が「イベントを変更する」ことを望むときは、古いものを無効にし、新しいものを作成するようにします。財務担当者は、監査の維持の重要性を理解するでしょう。 – AakashM
私は既にアーカイブされたBITを追加して、自動インクリメントを強制終了しました。技術的には、トランザクションテーブルは、作成されたデータのうち、おそらく多くのバージョンを基に作成されたものを知る必要があります。 –
監査表を作成し、DMLトリガーまたはDML文にOUTPUTディレクティブを追加することで、監査表を維持できます。私は 'OUTPUT'の例[here](http://stackoverflow.com/questions/9243389/sql-server-2005-knowing-new-record-is-inserted/9247000#9247000)を与えました。 –