2016-11-08 17 views
0

データベースがあります。この状況で進む方法についていくつかアドバイスが必要です。タスクと呼ばれるテーブルがあると仮定します。各タスクには、そのタスクを作成したユーザーに関する情報を格納する必要があるCreatedByというプロパティがあります。C#SQL Server - ユーザーが削除されたときにアイテムのユーザーに関する情報を保存します。

たとえば、そのユーザーのIDを保存できます。タスクをフェッチすると、特定のタスクCreatedbyフィールドの値がidの代わりにJohn Smithになるようにユーザーに関する情報が取得されます。これまでのすべての良い。ユーザーJohn Smithがシステムから削除/削除され、タスクがまだ存在するとします。タスクを作成したユーザーの名前を表示するにはどうすればよいですか。私はまだIDだけでなく、ジョンスミスをそこに見せる必要があります。

+0

名前を削除したり書き留めたりしないでください。 –

答えて

2

この状況では、私はUserテーブルに 'soft deletes'を使用します。ユーザーテーブルに列を追加し、デフォルト値の1で「アクティブ」と名前を付けます。ユーザーを削除する場合は、値を0に設定します。これにより、ユーザーの参照整合性を引き続き実行できます。

3

ユーザーを削除する代わりに、ActiveUserに追加することができます。 John Smithが自分のアカウントを削除する場合は、削除する代わりにActivefalseに設定します。

これはソフト削除と呼ばれます。

関連する問題