私は 2 つのクラスを持ってUserいStatusます。ユーザーにはいくつかのステータスがありますが、これは当然のMany-to-One関係であり、DB テーブルに簡単にマップできます。
ただし、この要件では、ユーザーが「現在の」ステータスを維持する必要もあります。つまり、Userテーブルでは、テーブルへの外部キーが必要Statusです。この結果、2 つのテーブル間に反対方向の 2 つの外部キーが存在します。
これの明らかな問題の 1 つは、レコードが 2 つのテーブルに挿入されると、どちらも削除できないため、一方のテーブルから削除すると、もう一方のテーブルの外部キーに違反することです。
この状況に最適な設計は何ですか?