私の最初の質問はすごくいいです!ナチュラルキーを使用するか、監査/変更ログにサロゲートキーと監査テーブルを使用してください
私は経験の少ないジュニア開発者であり、この問題に問題があります。
監査可能にする必要があるテーブルがあります。この表にコールセンターによる電話の記録が記録されているとしましょう(これは単なる例ではありません)。私はそれを "CallHistory"と呼ぶでしょう。
私はもともと、呼び出し先の名前、電話番号などを持つ「呼び出し先」という別のテーブルを保持する予定でした。このテーブルは代理の主キーを使用していました。
CallHistoryテーブルは、Calleeテーブルへの外部キーを持ちます。
私は元の電話番号を変更した場合、システム全体に伝播し、複数のテーブルで電話番号を変更する必要がないように、もともとこれを行いました。
問題は、CallHistoryテーブルの全体的なポイントは、間違った番号の呼び出し(誤った番号を呼び出した呼び出し元など)の履歴を記録することです。履歴は、この代理キーアプローチを使用して失われます。
作業中のシニア開発者の一人は、履歴を保存するためにCallHistoryテーブルにその特定の時刻に発信者のダイヤルごとに電話番号のコピーを保持することを提案しました。
私は同じ目的のために監査/変更ログテーブルを保持することを考えていました。
私のアプローチはこのプルプスに十分であろうか、それとも完全にオフトラックですか?どのアプローチが好きですか?
乾杯、 アンドリュー