0

関連するペイロード情報を含む次の多対多結合テーブルを検討してください。

| | (キー) FK_File_ID | (キー) FK_Status_ID | 日時 |

私の問題は、特定のファイルが特定のステータスに複数回置かれる可能性があることです。その生涯を通じて。ただし、同時に同じ状態になることはありません。Datetime は、2 つのエントリが一意であることを常に保証します。

私の問題は、ファイルがそのステータスになった時刻をユーザーが間違えた場合に更新できるようにする必要があるため、DateTime をキーとして設定できないことです。(現在、私が制御できないクライアント プログラムでは、ファイルがその状態になった時刻をユーザーが選択します)。キーとしてマークされている場合、その日付列を更新できないエンティティ フレームワークを使用しています。

この場合、結合テーブルに独自のID列を指定する必要がありますか? そのようなことをすることによる影響があるかどうかはわかりません。独自のID列がある場合、それは主キーを複合する必要がなくなり、ID列を主キーとして単純に使用できることを意味すると思いますか?

この問題に取り組む最善の方法は何ですか?

4

1 に答える 1

1

結合テーブルに別の属性を追加する必要があるとすぐに、それは単なる結合テーブルではなくなり、エンティティが必要になります。

この例では、自然キーは 3 つの列すべての複合です。ただし、ここで行うように主キーを更新する必要がある場合は特に、複合キーに外部キーを作成するのはより困難です。

ID フィールドを主キーとして追加し、自然キーに一意のインデックスを追加します。

于 2013-10-28T17:36:41.677 に答える